c++语言保证出现在派生类中的基类对象有其完整原样性
例:
class A
{
int val;
char c1;
};
class B:public:A
{
char c2;
};
sizeof(A)=8;
sizeof(B)=12;
原因:可以保证将子类对象复制给基类对象不会出错
class A
{
private:
int a;
char c1;
public:
A(int b, char k) :a(b), c1(k){}
void p()
{
cout << a << endl << c1 << endl;
}
};
class B :public A
{
private:
char c2;
public:
B(int b, char k1, char k2) :A(b, k1), c2(k2)
{
}
};
int main()
{
A *a1 = new A(1,'a');
a1->p();
A *a2 = new B(2,'c','b');
a2->p();
*a1 = *a2;
a1->p();
}
结果: