2019独角兽企业重金招聘Python工程师标准>>>

class A
{
};class B
{char ch;virtual void func0()  {  }
};class C
{char ch1;char ch2;virtual void func()  {  }virtual void func1()  {  }
};class D : public A, public C
{int d;virtual void func()  {  }virtual void func1()  {  }
};class E : public B, public C
{
public:int e;virtual void func0()  {  }virtual void func1()  {  }//子类里(E)没有实现func(),所以在E的子类里B的vfptr指向C的func()和E的func1()virtual void func123()  {  }
}int main()
{//result=1,空类,大小为1cout << "A=" << sizeof(A) << endl;//result=8,4(vfptr,4)+4(char ch,内存对齐,4) = 8       cout << "B=" << sizeof(B) << endl; //result=8 , 4(vfptr,4)+4(char ch1,char ch2,内存对齐,4) = 8  cout << "C=" << sizeof(C) << endl;    //result=12, 4(类D的vfptr,4)+4(存在基类的char ch1,char ch2,内存对齐,4)+4(int d) = 12D obj_d; //首先VPTR指向的虚函数表中保存的是类D中的两个虚函数的地址cout << "D=" << sizeof(obj_d) << endl;    //result=20,(多继承)继承多少个有虚函数的类,就有多少个虚函数指针,也即这几个虚函数指针组成了自己的vfptr(编译器不再单独给自己的虚函数插vfptr)//4(B的vfptr)+4(char ch)+4(C的vfptr)+4(C中 char ch1,char ch2)+4(E 中int d) = 20//这个可以从调试下看出来E obj_e;obj_e.e = 123;cout << "E=" << sizeof(obj_e) << endl;    return 0;
}

转载于:https://my.oschina.net/Yuqingmu/blog/468947

C++ 类的大小计算相关推荐

  1. C++ 类的定义、作用域及大小计算,限定访问符,this指针

    C++ 4 类与对象(上) 面向对象的特点 类的定义 访问限定符 类的作用域 类的大小计算 this指针 this指针的特性 面向对象的特点 抽象 封装 继承 多态 类的定义 类的两种定义方式: 1. ...

  2. 对于类对象模型的理解(类大小计算+大小端字节序)

    类对象模型 如何理解类与对象 类: 通俗理解,类相当于一个模型框架,限定了类有哪些成员变量,但从底层来看,内存并没有分配实际的物理空间来存储类 对象: 类对象即为类的具体描述,当类对象进行实例化过程中 ...

  3. 使用sizeof计算类的大小

    类的sizeof大小一般是类中的所有成员的sizeof大小之和,这个就不用多说. 不过有两点需要注意:1)当类中含有虚成员函数的时候,例如: class B { float a; public: vi ...

  4. sizeof计算类的大小

    1 sizeof一个空类 class A { };cout<<sizeof(A)<<endl;//1 注:class A是一个空类型,它的实例不包含任何信息,本来求sizeof ...

  5. View工作原理(三)视图大小计算过程(measure过程)

    一.android中view的measure过程总概 视图大小计算的过程是从根视图measure()方法开始,接着该方法会调用根视图的onMeasure()方法,onMeasure()方法会对所包含的 ...

  6. Android—Bitmap图片大小计算、压缩与三级缓存

    Bitmap对象占用内存大小: bitmap.getByteCount() 图片所占内存大小计算方式:图片长度 x 图片宽度 x 一个像素点占用的字节数. Android Bitmap使用的三种颜色格 ...

  7. Java对象内存大小计算

    背景 今天办公室两个人事妹子因为一道Java试题各持己见,誓死捍卫自己的答案(对,是HR没错 -- 程序猿快没活路了). 题:字符串 "7天学会JAVA" 占用的内存空间是 ( ) ...

  8. sizeof()来求一个类的大小

    基本概念 一个类的实例化对象所占空间的大小? 注意不要说类的大小,是类的对象的大小. 首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的. 用sizeof运算符对一个类型名操作,得 ...

  9. 图像的大小计算 位深和色深

    图像的大小计算 1.位深和色深 位深:即在某一分辨率下,每一个像素点可以有多少种色彩来描述,单位为"bit"(位).典型的色深是8-bit.16-bit.24-bit和32-bit ...

最新文章

  1. L1-016 查验身份证(2016年天梯赛模拟赛第8题)
  2. 鼠标滚轮 控制作用滚动
  3. 【数字信号处理】线性时不变系统 LTI ( 判断某个系统是否是 “ 非时变 “ 系统 | 案例三 )
  4. 嵌入式开发之zynq——zynq开发环境搭建
  5. 卸载angular版本
  6. 一篇超级详细的jsp+servlet+jdbc+mysql检验登录操作(IntelliJ IDEA)
  7. vim插件推荐之auto-pairs
  8. SparkContext转化为JavaSparkContext
  9. 关于Tomcat如何处理Open Redirect的问题
  10. db2增加decimal类型字段小数位_05725.16.1Hive中decimal类型字段.0结尾数据显示异常问题处理...
  11. 如何自定义MongoDB的存储桶
  12. 【Elasticsearch】Resizing Elasticsearch shards for fun and profit
  13. 用 Python 写一个 Kaggle 比赛排行榜的爬虫
  14. Aspose.Pdf for .NET控件PDF文档到Excel、EPS、SVG等的转换
  15. https方式nginx 代理tomcat访问不带www的域名301重定向跳转到www的域名帮助seo集中权重...
  16. java 64位时间戳转换32位时间戳
  17. 如何快速调整图片亮度和对比度?
  18. Python多继承及MRO顺序
  19. win7无法连接打印机拒绝访问_打印机共享时拒绝访问
  20. 【重要】有三AI知识星球不再对外公开!还想加入的有哪些途径?

热门文章

  1. Elasticsearch 参考指南(多索引)
  2. 打开WORD2016提示 您正在试图打开带有宏的 。。。。 解决办法
  3. Unity 跑酷Demo难题总结
  4. Mac OS X安装Git
  5. Android 图片 OOM问题总结
  6. VanDyke.SecureCRT.v7.0.0.326官方英文版x86 x64 + Keymaker-ZWT
  7. [iPhone-Sqlite3]sqlite3_prepare_v2() 不返回 SQLITE_OK,调试
  8. 设计模式 - Iterator(迭代器)
  9. 【发现】Warcraft III v1.22 不用正版CDKey上Battle.net 续篇
  10. 【iOS Tips】002-实现“简单单例模式”的几种方法?