繁体   English   中英

C ++继承枚举

[英]C++ Inheritance Enum

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

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

对于每种枚举类型,我都有一个从基A派生的类。
例如,我有一个这样的班级:

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

我的问题是:对于一个A对象,从中我知道它是类型B,因此它对应于类B,是否可以访问变量x,例如,是否可以访问变量x? 我知道从基层访问派生类有点棘手,但我想那是不一样的事情。

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

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

要么

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM