C++中的函数匹配错误

Function Matching Error in C++

本文关键字:错误 函数 C++      更新时间:2023-10-16

为什么 下面的代码给了我以下编译器错误:"找不到 eat()的匹配项"?

#include <iostream.h>
#include <conio.h>
void spit(char in[255])
{
    cout << in;
}
void spit (int in)
{
    cout << in;
}
int eat(int in)
{
    cout << "? ";
    cin >> in;
    return in;
}
char*  eat(char in[255])
{
    cout << "? ";
    cin >> in;
    return in;
}
int main()
{
clrscr();
int input;
input = eat(); // <---- over here
spit(input);
getch();
return 0;
}

你需要传递一个参数才能吃

..
int input;
input = eat(123);
spit(input);
..

但是为什么函数吃/吐以char [255]为参数呢?你不使用它

您的eat函数需要一个参数。

您有两个eat()重载。它们都需要一个参数。在调用参数时,应根据需要intchar*指定参数。或者创建一个不需要参数的新eat()函数。