C++ C++;我是否错误地使用了void函数?

C++ C++;我是否错误地使用了void函数?,c++,function,void,C++,Function,Void,错误: C2182:“tellStats”:非法使用类型“void” C2440:“正在初始化”:无法从“std::string”转换为“int” 不允许使用不完整的类型 所有这些错误都出现在这一行: //ClassPractice.cpp void tellStats(pick); 这叫 //Functions.h void tellStats(string); 它被定义为 //Functions.cpp void tellSta

错误:

  • C2182:“tellStats”:非法使用类型“void”
  • C2440:“正在初始化”:无法从“std::string”转换为“int”
  • 不允许使用不完整的类型
所有这些错误都出现在这一行:

    //ClassPractice.cpp
    void tellStats(pick);
这叫

    //Functions.h
    void tellStats(string);
它被定义为

    //Functions.cpp
        void tellStats(string choice)
    {
        if (choice == "wizard")
            {
            cout << "These are the Wizard's stats:" << endl;
            cout << "Max HP: 80\nSpeed: 7\nAttack: 10" << endl;
            }
    }
//Functions.cpp
void tellStats(字符串选择)
{
如果(选项==“向导”)
{

cout不能调用返回类型的函数。不要说:

void tellStats(pick);
只需使用tellStats(pick);


那一行是您唯一调用tellStats的地方吗?

int是一个令人费解的问题。出于历史原因,编译器内部经常在缺少类型时替换
int
。这通常不应该发生,但在这里您会看到这一点,因为编译器在第一个错误后试图继续。编译器不正确我猜你想定义一个void
int
类型的变量
tellStats
,并用一个字符串初始化该变量。

什么是
pick
类型?你有没有包含
string
?沿着这条线的某个地方,你将
int
传递到
tellStats
而不是
字符串中。你有没有是否要调用该函数?即
tellStats(pick)
,在调用tellStats()时,如果没有
void
,则不应指定返回类型。ClassPractice.cpp中的行应为:tellStats(pick);OP的错误消息(“无法从'std::string'转换为'int')建议是的,
pick
实际上是一个字符串。谢谢,这解决了问题!是的,这是我唯一调用tellStats()的地方。