在C+中,什么是虚拟基类?我想知道什么是“虚拟基类“是什么意思?让我举一个例子:class Foo{public:
void DoSomething() { /* ... */ }};class Bar : public virtual Foo{public:
void DoSpecific() { /* ... */ }};
3 回答
墨色风雨
TA贡献1853条经验 获得超6个赞
关于内存布局
A / \ B C \ / D
A A| |B C \ / D
D::foo()A
class A{
public :
foo() ;
int m_iValue ;} ;m_iValueDm_iValueB::m_iValueA::m_iValueB), C::m_iValueA::m_iValueC).
foo()m_iValue.
什么会出错?
A有一些基本特征。 B添加某种酷的数据数组(例如) C添加一些很酷的特性,比如观察者模式(例如, m_iValue).D继承自 B和 C,因此 A.
m_iValueDm_iValuesD
m_iValueDDCBm_iValue...
m_iValueCCB
结语
- 3 回答
- 0 关注
- 590 浏览
添加回答
举报
0/150
提交
取消
