我有一個類Player
,我想有一個成員primaryWeapon
可以設置爲從類Gun
派生任何數量的類。只是想知道如何去做這件事。我試圖設置它,但我不知道該從哪裏去。C++ - 基類作爲屬性
class Player : public Character {
public:
Player();
~Player();
Gun primaryWeapon;
void update();
void move(float horizontal, float vertical);
void fire();
};
你需要多態的指針或引用。 'gun * primaryWeapon;'(或者,更好的辦法是使用一個像std :: shared_ptr或者std :: unique_ptr 這樣的智能指針。) –
cdhowie
2014-11-24 21:33:54
試過了。但是,在執行primaryWeapon = new DevPistol()時,它會拋出一個錯誤「No viable overloaded'='」 – 2014-11-24 21:38:16
當出現此錯誤時,'primaryWeapon'的類型是什麼?例如,如果它是'std :: unique_ptr',那麼你需要執行'primaryWeapon.reset(new DevPistol())'。 – sfjac 2014-11-24 21:39:46