非虚拟继承
【带虚函数的类】
class Base
{
public:
virtual void FunTest1()
{
cout<<"Base::FunTest1()"<<endl;
}
virtual void FunTest2()
{
cout<<"Base::FunTest2()"<<endl;
}
int _data1;
};
int main()
{
Base b;
b._data1 = 0x01;
return 0;
}
Base类没有显式定义自己的构造函数,此时编译器会和成默认的构造函数,
合成的构造函数中主要完成在对象头4个字节中填写虚表地址:
Base类对象最后的模型如下:
注意:同一个类的对象共用同一个虚表
Base b1, b2, b3;
从上述的结果中可以得到印证。
【单继承(