类的sizeof大小一般是类中的所有成员的sizeof大小之和,这个就不用多说。

不过有两点需要注意:1)当类中含有虚成员函数的时候,例如:
class B
{
float a;
public:
virtual void fun(void);
}
此时sizeof(B)的大小为8,而不是4。因为在类中隐藏了一个指针,该指针指向虚函数表,正因为如此,
使得C++能够支持多态,即在运行时绑定函数的地址。
2)另一个要注意的是,当类中没有任何成员变量,也没有虚函数的时候,该类的大小是多少呢?
例如:
class B2
{
void fun(void);
}
此时sizeof(B2)的值是多少呢?在C++早期的编译器中,这个值为0;然而当创建这样的对象时,
它们与紧接着它们后面的对象有相同的地址。比如:
B2 b2;
int a;
那么对象b2与变量a有相同的地址,这样的话对对象b2地址的操作就会影响变量a。所以在现在大多数编译器中,该值的大小为1。

如果有虚函数,则sizeof值为类的数据成员的大小加上VTBL(指针,4字节),再加上其基类的数据成员的大小。如果是多重继承,还得加上各基类的VTBL。

类的sizeof大小和C语言中各种数据类型的长度相关推荐

  1. [置顶] C语言中各种数据类型的长度 sizeof char, short, int, long, long long

    这些数据类型的sizeof具体长度依赖于编译器和操作系统(32-bit or 64-bit) 1: 首先,参见c99标准 标准中没有定义这些数据类型的长度,而是定义了这些数据类型能表达的大小范围的最小 ...

  2. 软硬件学习记录5—— Verilog语言中的数据类型

    Verilog语言中的数据类型 在 Verilog 语言中,主要有三大类数据类型:寄存器数据类型.线网数据类型和参数数据类型. 1.寄存器类型 reg 1.1 概述: 寄存器数据类型的关键字是 reg ...

  3. C语言初阶-C语言中的数据类型以及变量的作用域和生命周期,常量的类型

    看之前记得先点赞收藏呦!谢谢大家的支持! 目录 一.c语言中的数据类型 注意:这里的long型的定义是>=int所占字节数,所以占4个是没有问题的 二.变量和常量 1.变量的类型 2.变量的作用 ...

  4. c语言程序设计中数据类型有哪些,c语言中基本数据类型有哪些

    c语言中基本数据类型有哪些 发布时间:2020-08-18 11:12:49 来源:亿速云 阅读:135 作者:小新 小编给大家分享一下c语言中基本数据类型有哪些,相信大部分人都还不怎么了解,因此分享 ...

  5. C语言中的数据类型及其转换详解

    http://www.cnblogs.com/jpcflyer/archive/2012/02/16/2353447.html 1. C语言中的数据类型 C语言中的类型按其组成可以分为简单类型和构造类 ...

  6. c语言各种数据类型长度,C语言中各种数据类型长度

    C语言中各种数据类型长度 C语言的基本数据类型有以下几个: int整型 char字符型 float单精度浮点型 double双精度浮点型 另外,在基本数据类型基础上附加一些限定词,得到扩充的数据类型. ...

  7. C语言 中的 数据类型 超详解

    C语言 中的 数据类型 超详解 一.整型(int.short.long.long long) 1.有符号整型 有符号整型的数据类型通常包括 int.short.long.long long 四种,因为 ...

  8. Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器

    Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...

  9. 【转】C++类的sizeof大小

    转自https://blog.csdn.net/zhengjihao/article/details/77825269 其中有的描述与实际GCC上执行的结果不符,不过其中的分析思路需要掌握. 以下是G ...

最新文章

  1. python编码规范手册-PEP8 Python 编码规范整理
  2. vs与git中间的阻拦--Git failed with a fatal error. error: open(“.vs/GBA/v16/Server/sqlite3/db.lock
  3. 浅谈数据结构-选择排序(简单、堆排序)
  4. mysql 获取每天的日期_mysql中获取一天、一周、一月时间数据的各种sql语句写法...
  5. 编程语言对比 条件控制语句
  6. linux系统下/proc深度解析
  7. mysql主从复制原理详解_简述 MySQL 逻辑架构与主从复制原理。
  8. iOS UIPageControl
  9. 【花朵识别】基于matlab模板匹配花朵分类【含Matlab源码 472期】
  10. C++万能头文件(真心佩服!)
  11. php 5.3 include 上层 function,php5.3开始出现的Function ereg() is deprecated Error问题解决办法...
  12. Ansible tower 3.7.0-4自动化运维管理安装方法
  13. USB接口、串口、并口有何区别
  14. docker的安装教程以及常用命令(一)
  15. 深入浅出 RPC - 浅出篇
  16. 集合--List集合练习--集合的嵌套、Random类获取随机数
  17. Android高仿微信图片多选功能
  18. 机器学习 特征选择篇——python实现MIC(最大信息系数)计算
  19. Mac OS X 如何执行应用程序
  20. eNSP:RIP实验

热门文章

  1. Contest Hunter CH6201 走廊泼水节 最小生成树 Kruskal
  2. layui d多文件上传
  3. 机器学习中的EM算法具体解释及R语言实例(1)
  4. 学会四招让你在linux下安装程序变得简单
  5. FPGA 之 VGA的IP核编写
  6. HUB管理步骤、桥端设置步骤和客户端使用步骤
  7. 作业: IT 行业博客网站分析和创新
  8. DotNetNuke: System.Security.Cryptography.CryptographicException: Bad Data
  9. 最简单也最难——如何获取到Android控件的高度,获取android控件
  10. Fragment详解之二——基本使用方法