【问题标题】:C + + Error: statement cannot resolve address of overloaded functionC++错误:语句无法解析重载函数的地址
【发布时间】:2016-04-06 02:58:34
【问题描述】:

我正在尝试用 C++ 制作游戏。我的编辑器是 Code::Blocks,我的编译器是 MinGW。该游戏是一个基于文本的生存游戏,变量为饥饿、口渴、温暖和选择。当我试图告诉玩家饥饿、口渴和温暖的值时,它给了我这个问题标题所陈述的错误。我是一个相对较新的程序员,但我了解基础知识。我现在将打印我使用的代码:

cout<< "Your hunger is"; hunger;  endl;
cout<< "Your warmth is"; warmth;  endl;
cout<< "Your thirst is"; thirst;  endl;

这是变量发生变化的地方(这是一个例子):

int wood()
{
cout<< "You have chosen find firewood!"<< endl;
if ((rand() % 2) == 2){
    cout<< "You found firewood!"<<endl;
    warmth = warmth + 1;
}
else{
    cout<< "You could not find any firewood"<< endl;
}
}

在我告诉玩家代码的同一个函数中,他们应该每回合在每个变量中损失一分:

warmth = warmth - 1;
hunger = hunger - 1;
thirst = thirst - 1;

代码超过 100 行,所以除非有人询问,否则我不会粘贴整个代码。如果任何变量为 0,则游戏结束:

if (hunger = 0){
    cout<< "You starved!"<< endl;
    cout<< "Game over!"<< endl;
    return 0;
}
if (thirst = 0){
    cout<< "You became dehydrated!"<< endl;
    cout<< "Game over!"<< endl;
    return 0;
}
if (warmth = 0){
    cout<< "You froze!"<< endl;
    cout<< "Game over!"<< endl;
    return 0;
}

【问题讨论】:

  • 顺便说一句,当你得到编译错误它指向特定的行时,你至少应该粘贴编译器给你的确切消息和它指向的行。

标签: c++ function variables


【解决方案1】:

应该是:

cout<< "Your hunger is" << hunger <<  endl;

等等

【讨论】:

    【解决方案2】:

    您的代码中有几个拼写错误。当你这样做时

    cout<< "Your hunger is"; hunger;  endl;
    

    您有 3 个语句而不是 1 个输出语句。你必须有

    cout << "Your hunger is" << hunger << endl;
    

    将所有内容链接在一起。否则它会尝试调用endl(),但它不能,因为没有关联的流对象。

    你们所有人的 if 语句也有问题。

    if (hunger = 0)
    

    当您评估将hunger 设置为0(即0)的结果时,将始终为假。您需要将 if 中的所有使用 = 更改为 == 以进行等于比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      相关资源
      最近更新 更多