在C ++类中更改整数

时间:2011-05-01 01:04:52

标签: c++

好的,所以,我在一个类中存储一个公共整数,如下所示:

class varglobalness{
    public:

    int xp;
    int lvl;
    int xpt;
    int hp;

};

并且,在函数内部我试图通过这样做来改变变量:

v.lvl += 1;
v.xpt += rand()%25+25;
v.xp = 0;
v.hp += rand()%25+5;

但是当我这样做时,hp没有改变,xp确实变为0,但是xpt和lvl变成了很多随机数。

任何想法如何在没有这种情况下正确地改变这些整数?

2 个答案:

答案 0 :(得分:5)

听起来你没有正确地初始化它们。如果变量未初始化,则它将具有未定义的值。您可以在构造函数中为它们提供初始值:

// varglobalness.h:
class varglobalness {
public:

    varglobalness();

    // ...

};

// varglobalness.cpp:
varglobalness::varglobalness() : xp(0), lvl(0), xpt(0), hp(0) {}

或者根据您的喜好在其他位置分配初始值。顺便说一下,你应该把这些变量放在有意义和封装的地方,而不是放在一堆随机的全局变量中。

答案 1 :(得分:2)

您是否初始化了变量? C ++中的变量不会自己初始化。

//In your constructor
v.lvl = 1;
v.xpt = 0;
v.xp = 0;
v.hp = 0;