C++ 我是否错误地使用了 void 函数?
C++ Am I using void functions incorrectly?
错误:
- 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: 80\nSpeed: 7\nAttack: 10" << endl;
}
}
我不明白为什么会出现这些错误。我不知道为什么 int 甚至与错误有关。我在这些代码部分中没有看到任何引用 int 的内容。我以为我使用 'void' 是正确的,因为我不想 return 函数的值。
您不能调用 return 类型的函数。不要说:
void tellStats(pick);
只需使用 tellStats(pick);
。
那条线是你调用 tellStats 的唯一地方吗?
int
是一条红鲱鱼。由于历史原因,编译器在内部经常在缺少类型时替换 int
。这通常不应该发生,但在这里您看到了这一点,因为编译器试图在第一个错误后继续。编译器错误地猜测您想要定义类型为 voidint
的变量 tellStats
并使用字符串初始化该变量。
错误:
- 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: 80\nSpeed: 7\nAttack: 10" << endl;
}
}
我不明白为什么会出现这些错误。我不知道为什么 int 甚至与错误有关。我在这些代码部分中没有看到任何引用 int 的内容。我以为我使用 'void' 是正确的,因为我不想 return 函数的值。
您不能调用 return 类型的函数。不要说:
void tellStats(pick);
只需使用 tellStats(pick);
。
那条线是你调用 tellStats 的唯一地方吗?
int
是一条红鲱鱼。由于历史原因,编译器在内部经常在缺少类型时替换 int
。这通常不应该发生,但在这里您看到了这一点,因为编译器试图在第一个错误后继续。编译器错误地猜测您想要定义类型为 voidint
的变量 tellStats
并使用字符串初始化该变量。