美文网首页
类的大小

类的大小

作者: EJ17zj | 来源:发表于2017-08-03 10:32 被阅读6次

类的大小

考察类中各变量、函数的类型,通过表1、表2得到各类型所占空间,相加即为类的大小。

表1:影响类大小的因素

因素 占用空间 说明
类本身 空类占用空间大小与编译器相关
继承 父类所有变量、函数会被继承到子类中
变量 见表2 自身大小
static 0 静态数据位于全局数据区,为类所有对象共享
指针 4或8 与系统位数相关
虚函数 同指针 与虚函数表个数相关

表2:变量占用空间与位数的关系(单位字节B)

变量类型 32位系统 64位系统
char 1 1
short 2 2
int 4 4
long 4 8
long 8 8
float 4 4
double 8 8
指针 4 8

说明

  • 一般不考虑空类的大小;
  • public、protect、private只影响变量、函数的使用权限,并不影响继承,子类一定包含父类所有的内容(但不一定能访问父类的所有内容);
  • 在一般继承中,多个虚函数也只增加一个指针大小,这是因为增加的这个指针指向虚函数表,表中可包含多个虚函数地址;在多重继承中,类中包含多个虚函数表,即增加多个指针大小。

相关文章

  • 类的大小

    类的大小 考察类中各变量、函数的类型,通过表1、表2得到各类型所占空间,相加即为类的大小。 表1:影响类大小的因素...

  • 含有类的大小

    首先是一个类如果含有虚函数 会创建一个虚函数表(vtable)而类中会有一个指针指向这个虚函数表 接着是如果一个类...

  • sizeof 类的大小

    1. 空类大小 空类: 空类占用1个字节 运行的答案是: ** 这说明了空类所占用的空间为1, 单一继承的空类占用...

  • 空类的大小

    空类就是没有任何数据成员的类,这种类占用的内存大小在不同的语言里面有不同的实现 c 这个结果输出是0,也就是说 c...

  • JVM入门——类的大小

    一般大部分java程序并不知道一个java类到底占用了多少内存空间,下面我就分析一下一个java对象在堆中到底占用...

  • 【C++ Templates(19)】模板与继承

    空基类优化(EBCO) 布局原则 C++不允许类大小为0,比如数组元素为类,若类大小为0则数组大小也是0,这样会导...

  • 18 模板与继承

    空基类优化(EBCO) 布局原则 C++不允许类大小为0,比如数组元素为类时,若类大小为0则数组大小也是0,这会导...

  • 3、八种基本数据类型的大小,以及他们的封装类

    八种基本数据类型的大小,以及他们的封装类 基本类型 大小(字节) 默认值 封装类...

  • C++空类的大小

    C++的空类是指这个类不带任何数据,即类中没有非静态(non-static)数据成员变量,没有虚函数(virtua...

  • C++类大小和静态成员/方法

    类大小计算 空类的大小为1字节 一个类中,虚函数本身、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的...

网友评论

      本文标题:类的大小

      本文链接:https://www.haomeiwen.com/subject/ytnulxtx.html