EX1:****************************************************************************
class A
{
public:
char a[3];
virtual void aa(){};
};
class B : virtual public A
{
public:
char b[3];
virtual void bb(){};
};
class C : virtual public B
{
public:
char c[3];
virtual void cc(){};
};
int main()
{
cout << sizeof(A) << endl;
cout << sizeof(B) << endl;
cout << sizeof(C) << endl;
return 0;
}
/*
* 8 16 24
*/
EX2:****************************************************************************
class A
{
public:
char a[3];
virtual void aa(){};
};
class B : public A
{
public:
char b[3];
virtual void bb(){};
};
class C : public B
{
public:
char c[3];
virtual void cc(){};
};
int main()
{
cout << sizeof(A) << endl;
cout << sizeof(B) << endl;
cout << sizeof(C) << endl;
return 0;
}
/*
* 8 12 16
*/
EX3:****************************************************************************
class A
{
public:
// char a[3];
virtual void aa(){};
};
class B : virtual public A
{
public:
// char b[3];
virtual void bb(){};
};
class C : virtual public B
{
public:
// char c[3];
virtual void cc(){};
};
int main()
{
cout << sizeof(A) << endl;
cout << sizeof(B) << endl;
cout << sizeof(C) << endl;
return 0;
}
/*
* ...
*/
EXN:****************************************************************************
..............................................................................................................................................................................................................................................................
..............................................................................................................................................................................................................................................................
迷惑不懂,求懂的人讲解下?以上情况中的 虚不虚继承的区别在哪?有没有char a[]等数据的区别等等区别?
转载于:https://www.cnblogs.com/XBin/archive/2012/09/29/2853627.html
相关资源:JAVA上百实例源码以及开源项目