#include using namespace std;

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;

}

C++ 多继承内存分配测试:虚拟继承和内存地址

原文地址: https://www.cveoy.top/t/topic/nHTT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录