类的大小
来源:互联网 发布:hadoop mr算法 编辑:程序博客网 时间:2024/05/21 20:30
- C/C++ code
- #include<iostream>using namespace std;class Base{public: Base() { x=0; } int x;};class Derived1:virtual public Base{public: Derived1() { x=10; }};class Derived2:virtual public Base{public: Derived2() { x=20; }};class Derived:public Derived1,public Derived2 { };int main(){ Derived obj; cout<<"sizeof(Base)="<<sizeof(Base)<<endl; cout<<"sizeof(Derived1)="<<sizeof(Derived1)<<endl; cout<<"sizeof(Derived2)="<<sizeof(Derived2)<<endl; cout<<"sizeof(Derived)="<<sizeof(Derived)<<endl; cout<<"obj.x="<<obj.x<<endl; return 0;}
结果:
sizeof(Base)=4
sizeof(Derived1)=8
sizeof(Derived2)=8
sizeof(Derived)=12
obj.x=20
Press any key to continue
问题1:虚拟继承到底是怎样继承父类的数据成员的??为何sizeof(Base)=4,
而sizeof(Derived1)=8,sizeof(Derived)=12
问题2:为何obj.x的值是20 而不是10
正是这样,补充一下,他调用的顺序是先Derived1(),x=10;接着Derived2(),x=20;依次从继承列表顺序依次调用
- 类的大小
- 类的大小
- 类对象的大小
- 类的大小
- c++ 类的大小
- 类的大小问题
- 类的大小计算
- C++ 类的大小
- 类的大小
- C++类的大小
- 类的大小
- 类的大小
- c++ 类的大小
- C++类的大小
- C++类的大小
- 类的大小
- 类的sizeof大小
- 关于类的大小
- 我的上位机
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: XXXX
- java foreach 使用
- 无谓的linux和windows之争
- progress bar color
- 类的大小
- HTML特殊字符大全
- 我自己的音乐播放器
- 从一个成功的案例看企业网站应该怎么做
- 网站模板设计中的40种常用技巧
- rokon中的碰撞检测
- 【linux基础】linux基础文件夹介绍和磁盘介绍
- Web App和Native App 谁将是未来
- android 画图之bitmap(一)