c++ - 为什么我会收到函数式初始化程序错误似乎是函数定义

标签 c++

<分区>

#include <iostream> 
using namespace std;
int mf_option(1);
int mf_rectangle(2);
int main()
{
    int mf_option(1);
    int mf_rectangle(2);
return 0;
}
int mf_option(1)
{

    char a;
    int size = 0;
    cout << "Enter a character: " << endl;
    cin >> a;
    while (size < 1 || size > 5)
        cout << "Enter a valid size from 1-5: " << endl;
    cin >> size;
}
int mf_rectangle(2)
{
    int size = 0;
    for (int row = 1; row <= size; row++)
    {
        for (int col = 1; col <= size; col++)
        {
            if (row > 1 && row < size && col > 1 && col < size)                 
                cout << " ";
            else
                cout << a;
        }
        cout << "\n\n";
    }
    for (int row = 2; row <= size; row++)
    {
        for (int col = 2; col <= size; col++)
        {
            if (row > 2 && row < size && col > 2 && col < size)
                cout << " ";
            else
                cout << a;
        }
        cout << "\n\n";
    }
    for (int row = 3; row <= size; row++)
    {
        for (int col = 3; col <= size; col++)
        {
            if (row > 3 && row < size && col > 3 && col < size)             
                cout << " ";
            else
                cout << a;
        }
        cout << "\n\n";
    }
    for (int row = 4; row <= size; row++)
    {
        for (int col = 4; col <= size; col++)
        {
            if (row > 4 && row < size && col > 4 && col < size)                 
                cout << " ";
            else
                cout << a;
        }
        cout << "\n\n";
    }
    for (int row = 5; row <= size; row++)
    {
        for (int col = 5; col <= size; col++)
        {
            if (row > 5 && row < size && col > 5 && col < size)
                cout << " ";
            else
                cout << a;
        }
        cout << "\n\n";
    }
}

我不明白为什么我会在第 15 行和第 26 行收到此错误。第 15 行还有一个错误,上面写着预期的“;”。这是错误信息 错误 1 ​​error C2448: 'mf_option1' : 函数式初始化器似乎是一个函数定义

最佳答案

int mf_option(1);

是变量 mf_option 的定义。它的类型是int,值是1。这不是函数声明。

稍后,您有:

int mf_option(1)
{
 ...
}

这是一个语法上无效的结构。开始时就像您要定义一个变量,结束时就像您要定义一个函数。

mf_rectangle 也存在类似的问题。

如果我正确理解你的意图,你需要替换这些行:

int mf_option(1);
int mf_rectangle(2);

通过

int mf_option(int arg);
int mf_rectangle(int arg);

对您尝试定义函数的位置进行类似的更改。

关于c++ - 为什么我会收到函数式初始化程序错误似乎是函数定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29504677/

相关文章:

c++ - 监控剪贴板

c++ - 为数值数组创建别名

c++ - 从 vector 中删除 opencv rect 对象

c++ - std::string 比较多字节符号如 € º 或 ª 时遇到问题

c++ - 直接初始化与直接列表初始化 (C++)

python - 使用 C++/Python 对 wav 文件进行 FFT

c++ - 静态库中的"Conditional jump or move depends on uninitialised value"

c++ - 将 ZeroMQ 与 Boost::ASIO 一起使用

c++ - 假设 `std::ostream << T()` 定义明确,如何为任何 T 打印 std::optional < T >?

c++ - 加密基于 C++/Perl 的应用程序的具体问题,以便数据库访问凭据永远不会被黑客攻击