【问题标题】:C++ class inheritance variablesC++ 类继承变量
【发布时间】:2013-04-19 12:01:28
【问题描述】:

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

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

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”对象都相同?

【问题讨论】:

  • c++中不需要定义空的构造函数或析构函数。

标签: c++ class variables object inheritance


【解决方案1】:

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

  1. 只需在子类构造函数中赋值给它

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

    class Unit
    {
        ...
        explicit Unit(char ind) : indicator(ind) {}
        ...
    };
    
    class WoodenBoxClass : public Unit
    {
        ...
        WoodenBoxClass() : Unit('B') {}
        ...
    };
    

【讨论】:

  • 第一个版本有效。非常感谢您,尤其是您的快速答复! =)
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2015-12-09
    • 2023-02-09
    • 2018-08-13
    • 2021-10-13
    • 1970-01-01
    • 2011-03-25
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多