明天吧!
不完整啊
#include <iostream>
using namespace std;
class A{
public:
int a;
};
class B:public A
{
public:
};
class C:public A
{
public:
};
class D:public B,public C
{
public:
};
int main()
{
D d;
cout<<sizeof (d)<<endl;
return 0;
}
结果图:
1.我们在代码中只定义了一个代码为int a的内存,内存大小为4,而到了最远的D时,内存大小为了8,这就导致不管父类有多少内存,最远的那个类型接到的内存大小永远是父类的两倍,导致了最远处的类被多次构造。
这两个和多次继承一样。
2.同名属性与方法的二义性的问题。
3.代码膨胀的问题。