#include<iostream>
using namespace std;
class A
{
public:
int a;
};
class B1:public A
{
};
class B2:public A
{
};
class C:public B1,public B2
{
};
class D1:public C
{
};
class D2:public C
{
};
class E:public D1,public D2
{
};
int main()
{
cout<<sizeof(E)<<endl;
E e;
e.D1::B1::x=5; //错误了B1 is an ambiguous of E, 这个地方如何来表示e的四个成员变量????
system("pause");
}
int main()
{
cout<<sizeof(E)<<endl;
E e;
e.::D1::B1::a = 1;
e.::D1::B2::a = 2;
e.::D2::B1::a = 4;
e.::D2::B2::a = 8;
cout << e.::D1::B1::a << endl;
cout << e.::D2::B1::a << endl;
unsigned char* p = (unsigned char*)&e;
for (int i = 0; i < sizeof(E); ++i)
printf("%02x ", p[i]);
}
-------- output -------------
16
1
4
01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00
不能,这是C++的标准,我参考了ANSI C++知识丛书。
可,谁也不想这样呀
继成,就这么痛苦。