C ++继承枚举

时间:2014-04-10 07:58:58

标签: c++ inheritance

在C ++中,我有一个基类A,例如:

class A {
    enum type {B, C, D, E};
    ....
    ....
}

对于每个枚举类型,我有另一个派生自基础A的类 例如,我有一个这样的类:

class B : public A {
    int x;
    ....
    ....
};

我的问题是:使用A对象并从中我知道它是B类,因此它对应于B类,例如可以访问变量x,如果是,如何?我知道从基础获取对派生类的访问有点棘手,但我想这是不同的不一样。

1 个答案:

答案 0 :(得分:0)

如果你有一个A *aA &a,并且确定它确实指向/引用类型为B的对象,则可以使用强制转换:

A *a = ...;
B *b = static_cast<B*>(a);

A &a = ...;
B &b = static_cast<B&>(a);