2013-04-25 100 views
1

我正在製作一款遊戲,並且我想將屬於單元的角色存儲在定義單位的類中。 (作爲對象)C++類繼承變量

這是定義類。 (我使用繼承)

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 |錯誤:預計在''之前的不合格id。代幣

我該怎麼辦?主要問題是,我怎樣才能達到「指標」變量是每個「WoodenBoxClass」對象相同?

+0

沒有必要在C++中定義空的構造函數或析構函數。 – Elazar 2013-04-25 14:26:56

回答

2

您需要在類構造函數中初始化成員變量。有兩種方法可以做到這一點:

  1. 簡單地分配給它的子類的構造

    WoodenBoxClass() 
    { 
        indicator = 'B'; 
    } 
    
  2. 已在基類,它的指標作爲參數的構造方法,並使用在子類的構造函數初始化列表:

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

第一個版本的作品。非常感謝,特別是對於快速回答! =) – 2013-04-25 14:32:25

0

爲了保持「指示」變量相同的每一個「木BoxClass「對象,你可以使用靜態變量。

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

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

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