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

C++ Am I using void functions incorrectly?

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

错误:

  • C2182:"tellStats":非法使用类型"void"
  • C2440:"initializing":无法从"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: 80nSpeed: 7nAttack: 10" << endl;
            }
    }

我不明白为什么我会犯这些错误。我不知道为什么一个int和这个错误有关。在这些代码部分中,我看不到任何涉及int的内容。我认为我正确地使用了"void",因为我不想在函数中返回值。

您不会调用返回类型的函数。不要说:

void tellStats(pick);

只需使用CCD_ 1。

那条线是你唯一叫tellStats的地方吗?

int是在转移注意力。由于历史原因,编译器内部经常在缺少类型时替换int。这通常不应该发生,但在这里你可以看到这是公开的,因为编译器试图在第一个错误后继续。编译器错误地猜测您想要定义voidint类型的变量tellStats,并用字符串初始化该变量。