3
我似乎無法獲得多級繼承函數調用正常工作。對於我的結構我有一個 「實體」 爲主體的超類,那麼C++多級繼承不起作用
實體 - >子彈,代理
代理 - >播放器,敵人
的敵人 - > BasicEnemy
在每這些我有一個「更新」功能
class Entity
{
public:
Entity();
virtual ~Entity();
//stuff
virtual Bullet update(float deltaTime);
}
class Agent : public Entity
{
public:
Agent();
virtual ~Agent();
virtual Bullet update(float deltaTime);
class Player : public Agent
{
public:
Player();
~Player();
Bullet update(float deltaTime) override;
class Enemy : public Agent
{
public:
Enemy();
virtual ~Enemy();
virtual Bullet update(float deltaTime);
class BasicEnemy : public Enemy
{
public:
BasicEnemy();
~BasicEnemy();
Bullet update(float deltaTime) override;
創建播放器,敵人,子彈物體,然後將它們傳遞到實體的載體但是每當我打電話
Entity entity = entities[i];
entity.update(deltaTime);
它只是每個進入「代理」更新功能,如果我做代理更新功能的純虛它只是給實體更新功能,爲什麼不播放器和敵人的更新功能覆蓋基地功能?
參見:http://stackoverflow.com/questions/274626/what-is-object-slicing – tmpearce
補充閱讀:[什麼是對象切片?](http://stackoverflow.com/questions/274626/what-is-object-slicing) – user4581301