c++ - 访问数组中的派生类的问题

标签 c++ derived-class

class BaseObj
{
public:
    int position;
};

class EnemyObj: public BaseObj
{
public:
    int quantity;
};

class PlayerObj: public BaseObj
{
public:
    int lives;
};

int main()
{
    BaseObj* myObjs[3];

    BaseObj* b = new BaseObj();
    b->position = 1;
    myObjs[0] = b;

    EnemyObj* e = new EnemyObj();
    e->position = 2;
    e->quantity = 5;
    myObjs[1] = e;

    PlayerObj* p = new PlayerObj();
    p->position = 3;
    p->lives = 2;
    myObjs[2] = p;

    myObjs[2]->lives = 2;  // error is here
    return 0;
}

我的问题是我想要一个包含我所有游戏对象的数组,这样我就可以把它们放在一起,但是当我尝试访问 myObjs[2]->生命 我无法这样做。这是我得到的错误:

error C2039: 'lives' : is not a member of 'BaseObj'

最佳答案

关于c++ - 访问数组中的派生类的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4905675/

相关文章:

C++:带大括号初始化列表的函数调用表达式 - 标准是否规定在单个元素列表的微不足道的情况下忽略大括号?

c++ - OpenCV 中的 HOG 用于对整个图像进行分类

C++ Boost 序列化 序列化模板派生类

Ruby 从基类访问派生类 "class methods"

c++ - 不传递参数重载运算符

c++ - 是什么导致了段错误?

c++ - boost 状态图 : Return to Previous State

c++ - 给定基指针访问派生属性和方法的更简单方法

c++ - 检查派生类的数据成员

java - setZone方法有问题吗?