我最近意识到我在C ++中已经变得多么生气,所以我决定开发一个基于文本的小型RPG。我有一个武器课和一个球员课。我的默认播放器构造函数是:
Player::Player()
{
name = "Henry";
hp = 50;
mp = 25;
xp = 0;
Weapon wep = Weapon::Weapon("Club", 5);
}
我的武器有两个构造函数,如下所示:
Weapon::Weapon()
{
name = "Hands";
damage = 1;
}
Weapon::Weapon(string n, int d)
{
name = n;
damage = d;
}
我的武器课程:
class Weapon
{
private:
string name;
int damage;
public:
Weapon();
Weapon(string n, int d);
string getName();
int getDmg();
};
然而,问题是当我在主文件中调用getName()函数时,它返回" Hands"。同样,getDmg()返回1.这是正常还是我做错了什么?
答案 0 :(得分:4)
Weapon wep = Weapon::Weapon("Club", 5);
在您的Player
构造函数的本地,您可能意味着wep = Weapon("Club", 5);
甚至更好:
Player::Player() :
name("Henry"),
hp(50),
mp(25),
xp(0),
wep("Club", 5)
{
}