【发布时间】:2016-12-31 17:34:33
【问题描述】:
我似乎无法让多级继承函数调用正常工作。对于我的结构,我有一个“实体”作为主要的超类,然后
实体 -> 子弹,特工
代理 -> 玩家,敌人
敌人 -> 基本敌人
在每一个中我都有一个“更新”功能
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);
它只进入“代理”更新功能,如果我将代理更新功能设为纯虚拟,它只进入实体更新功能,为什么玩家和敌人更新功能不覆盖基本功能?
【问题讨论】:
标签: c++ inheritance