C++ 多继承内存分配测试:虚拟继承和内存地址
#include
class A //基类A { public: int dataA; };
class B : virtual public A { public: int dataB; };
class C : virtual public A { public: int dataC; };
class D : public B,public C { public: int dataD; };
int main() { D *d=new D; d->dataA=10; d->dataB=100; d->dataC=1000; d->dataD=10000;
cout << 'D: ' << (int*)d << endl;
B *b=d;
cout << 'B: ' << (int*)b << endl;
C *c=d;
cout << 'C: ' << (int*)c << endl;
A *fromB=(B*)d;
cout << 'fromB: ' << (int*)fromB << endl;
A *fromC=(C*)d;
cout << 'fromC: ' << (int*)fromC << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nHTT 著作权归作者所有。请勿转载和采集!