未声明的变量C ++

时间:2014-04-08 18:45:08

标签: c++

这是我的代码:

Weapon SpikeClub;
    SpikeClub.name = "SpikeClub";
    SpikeClub.damage = 25;
    SpikeClub.player_has = false;
    SpikeClub.durability = 20;
    cin >> player_input;
    if (player_input == "Spike Club")
    {
        SpikeClub.durability--;
    }
    if (SpikeClub.durability == 0)
    {
        SpikeClub.player_has = false;
    }
    if (oppArmor_Wearing == true)
    {
        SpikeClub.damage = 10;
    }
    if (oppArmor_Wearing == false)
    {
        SpikeClub.damage = 0;
    }

这是我正在制作的史前RPG中的一种武器。最重要的是损坏,耐久性等参数。我的问题出现在代码读取的位置

if (oppArmor_Wearing == true)
        {
            SpikeClub.damage = 10;
        }
 if (oppArmor_Wearing == false)
        {
            SpikeClub.damage = 0;
        }

返回的错误是#34; oppArmor_Wearing未在此范围内宣布"。 其他修复程序似乎与我的代码结构不同,但有人可以帮助我吗?我知道这是一个基本问题,但我不记得如何在这样的情况下声明变量。 (自从我做了C ++以来已经有一年了,我正在调试一个旧项目)

2 个答案:

答案 0 :(得分:0)

仔细检查是否

oppArmor_Wearing

在您的武器结构中声明。

答案 1 :(得分:0)

正如其他人已经提到的那样,oppArmor_Wearing没有在任何地方定义。根据您的其余代码,我认为您的代码应该是解决问题的原因

Weapon SpikeClub;
SpikeClub.name = "SpikeClub";
SpikeClub.damage = 25;
SpikeClub.player_has = false;
SpikeClub.durability = 20;
cin >> player_input;

// Add these lines in
bool oppArmor_Wearing = false;
// Make sure you define player_input2 as your input like you did for player_input
cin >> player_input2;
if (player_input2 == "Opponent has armor")
{
   oppArmor_Wearing = true;
}


if (player_input == "Spike Club")
{
    SpikeClub.durability--;
}
if (SpikeClub.durability == 0)
{
    SpikeClub.player_has = false;
}

// changed this to if/else instead of 2 ifs
// although I think the blocks should be swapped because
// if the opponent is wearing armor, your spike club should
// probably do less damage
if (oppArmor_Wearing)
{
    SpikeClub.damage = 10;
}
else
{
    SpikeClub.damage = 0;
}

希望它有所帮助!