1

我正在开发一个游戏,我想存储角色属于定义单位的类中的一个单位。(作为对象)

这是定义类。(我使用继承)

class Units
{
    public:
       char indicator;

        Units();
        virtual ~Units();
    protected:
    private:
};

Units::Units (){}
Units::~Units (){}


class WoodenBoxClass: public Units
{
    public:
        WoodenBoxClass.indicator = 'B';
};

编译过程中,当"WoodenBoxClass.indicator = 'B';" 来了,我收到一条错误消息:

50|error: '.' 之前的预期 unqualified-id 令牌

我应该怎么办?主要问题是我怎样才能达到“指标”变量与每个“WoodenBoxClass”对象相同?

4

2 回答 2

2

您需要在类构造函数中初始化成员变量。有两种方法可以做到:

  1. 只需在子类构造函数中分配给它

    WoodenBoxClass()
    {
        indicator = 'B';
    }
    
  2. 在基类中有一个将指标作为参数的构造函数,并在子类构造函数中使用初始化列表:

    class Unit
    {
        ...
        explicit Unit(char ind) : indicator(ind) {}
        ...
    };
    
    class WoodenBoxClass : public Unit
    {
        ...
        WoodenBoxClass() : Unit('B') {}
        ...
    };
    
于 2013-04-25T14:29:31.880 回答
0

要使“indicator”变量与每个“WoodenBoxClass”对象保持相同,您可以使用静态变量。

class WoodenBoxClass: public Units
{
    public:
        static char indicator = 'B';
};

class Units
{
    public:
       //char indicator;   //not necessary actually

        Units();
        virtual ~Units();
    protected:
    private:
};
于 2013-04-25T14:30:57.457 回答