#include <iostream>
using namespace std;
/**
* 8=4(x)+4 (vptr)
*/
class A {
public:
int x;
virtual void func() {
}
};
/**
* 16=4(x)+4 (vptr)+4(y)+4(vbPtr)
*/
class B : virtual public A {
public:
int y;
virtual void funcB() {
}
};
class B1 : virtual public A {
public:
int z;
virtual void funcB1() {
}
};
/**
* 16=4(x)+4 (vptr)+4(y)+4(B vbPtr)+4(A vbptr)+4(m)
*/
class C : virtual public B {
int m;
virtual void funcC() {
}
};
/**
* 16=4(x)+4 (vptr)+4(y)+4(B vbPtr)+4(A vbptr)+4(m)+4(z)+4(B1 vbptr)
*/
class D : public B, public B1 {
int n;
virtual void funcD() {
}
};
int main() {
A a;
B b;
C c;
D d;
cout << "sizeof(A)=" << sizeof(a) << endl;
cout << "sizeof(B)=" << sizeof(b) << endl;
cout << "sizeof(C)=" << sizeof(c) << endl;
cout << "sizeof(D)=" << sizeof(d) << endl;
return 0;
}
运行结果:
sizeof(A)=8
sizeof(B)=16
sizeof(C)=24
sizeof(D)=28
//C.h
class C {
private:
int a;
public:
static int b;
};
//C.cpp
#include "C.h"
int C::b=10;
int main() {
cout<<C::b<<endl;
C::b=100;
cout<<C::b<<endl;
return 0;
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有