在Visual Studio 2015中调用函数错误

时间:2016-11-11 03:30:21

标签: c++ function compiler-errors declaration

更新:好的,谢谢大家!我的教科书说函数原型需要在括号中声明函数,并且所示的示例与函数头和函数体中的代码本身略有不同,所以..我接受了它向我展示的内容。我纠正了它,建议将原型的括号留空并且有效。

为了记录,我真的很讨厌这些教科书...再次感谢你们的帮助!

OP: 我收到此错误:

  

C2660' getLetter':函数不带0个参数。

代码是这样的:

#include <iomanip>
#include <iostream>
#include <cmath>
using namespace std;

char getLetter(char letter);

int main()
{
    char firstLetter = getLetter();
        cout << firstLetter;
    return 0;
}   //end of main function

char getLetter()
{
    char letter = ' ';
    cout << "Enter a character: ";
    cin >> letter;
    return letter;
}   // end of getLetter function

我的代码看起来像书中给出的示例,但没有一个示例使用&#34; char&#34;函数,它们都使用double或int;不确定是否重要。错误(在第12行,主函数的底部)也是我的教师编写的代码,而不是我,这让我更加困惑。我在掌握这一课时遇到了麻烦,需要第二个观点。

3 个答案:

答案 0 :(得分:1)

在以下代码段中调用该函数之前

int main()
{
    char firstLetter = getLetter();
                       ^^^^^^^^^^
    //...

您将名称getLetter声明为具有一个参数

的函数
char getLetter(char letter);
               ^^^^^^^^^^^

int main()

//...

编译器没有看到你在main之后放置的另一个函数声明。

char getLetter()
{
    char letter = ' ';
    cout << "Enter a character: ";
    cin >> letter;
    return letter;
}   // end of getLetter function

因此编译器会发出错误。

很明显,你不会超载这个功能并输入错字。在main之前删除函数声明中的参数声明。

答案 1 :(得分:0)

您的函数声明语句接受char

char getLetter(char letter);

如果您想要更改它以便它不再需要char作为参数,只需使用:

char getLetter();

<强>为什么:

您的功能签名必须与您的功能定义和函数调用相同。

答案 2 :(得分:0)

函数声明与函数定义不匹配。