-2

有谁知道为什么在:

io.cpp:

# include <iostream>
int ReadNumber()
{
    using namespace std;
    cout << "Enter a number: ";
    int x;
    cin >> x;
    return x;
}

void WriteAnswer(int x)
{
    using namespace std;
    cout << "The answer is " << x << endl;
}

主.cpp:

int ReadNumber();
void WriteAnswer(int x);

int main()
{
    int x = ReadNumber();
    int y = ReadNumber();
    WriteAnswer(x+y);
    return 0;
}

Readnumber() 中没有 int x;main.cpp 中的前向声明?当我将 int x 放在括号内时,编译器会说:''函数不接受 0 个参数''

4

1 回答 1

1
int ReadNumber();

main 中的此函数声明表明您的 ReadNumber 函数不带参数,并将返回一个 int。

如果在 ReadNumber 声明(在 main.cpp 中)和定义(在 io.cpp 中)中添加 int x 作为参数:

int ReadNumber(int x)

然后,您对该函数的函数调用必须包含一个整数作为参数。这就是为什么您会收到消息“函数不接受 0 个参数”的原因:您正在调用一个等待 1 个参数的函数,而您对该函数的调用不包含任何参数。

下面是一个包含参数的 ReadNumber 函数调用示例:

int YourParamUsedInReadNumber = 0;    
int x = ReadNumber(YourParamUsedInReadNumber); 

正如评论中所建议的那样,在进一步学习之前,您可能应该获得一本好的 C++ 书,以便更好地掌握编程基础知识。

于 2013-09-22T15:25:05.827 回答