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
。这通常不应该发生,但在这里您会看到这一点,因为编译器在第一个错误后试图继续。编译器不正确我猜你想定义一个voidint
类型的变量tellStats
,并用一个字符串初始化该变量。什么是pick
类型?你有没有包含string
?沿着这条线的某个地方,你将int
传递到tellStats
而不是字符串中。你有没有是否要调用该函数?即tellStats(pick)
,在调用tellStats()时,如果没有void
,则不应指定返回类型。ClassPractice.cpp中的行应为:tellStats(pick);OP的错误消息(“无法从'std::string'转换为'int')建议是的,pick
实际上是一个字符串。谢谢,这解决了问题!是的,这是我唯一调用tellStats()的地方。