C ++代码编译错误

时间:2013-09-22 14:52:00

标签: c++ encoding

有谁知道为什么:

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;
}

main.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参数''

1 个答案:

答案 0 :(得分: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 ++书籍,以便在进一步学习之前掌握编程基础知识。