在C ++中,我有一个基类A,例如:
class A {
enum type {B, C, D, E};
....
....
}
对于每个枚举类型,我有另一个派生自基础A的类
例如,我有一个这样的类:
class B : public A {
int x;
....
....
};
我的问题是:使用A对象并从中我知道它是B类,因此它对应于B类,例如可以访问变量x,如果是,如何?我知道从基础获取对派生类的访问有点棘手,但我想这是不同的不一样。
答案 0 :(得分:0)
如果你有一个A *a
或A &a
,并且确定它确实指向/引用类型为B
的对象,则可以使用强制转换:
A *a = ...;
B *b = static_cast<B*>(a);
或
A &a = ...;
B &b = static_cast<B&>(a);