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