类的大小计算(sizeof())

原创 2016年06月02日 07:34:58
class A{
};
//sizeof(A) =1; 空类大小为1
class B{
    char ch;
    int x;
};
//sizeof(B) =8; 1+3(内存补齐)+4 = 8
class C{
public:
    void Print(void){}
};
//sizeof(C) =1;类大小只与非静态成员变量和虚函数有关,与普通成员函数和构造、析构函数无关;类外空类大小为1;
class D
{
public:
    virtual void Print(void){}
};
//sizeof(D) =4;类中所有虚函数共用一个虚函数指针,指向一个虚函数列表。

原则:

  1. 空类编译器会将sizeof()的值变为1;
  2. 类的大小只与非静态成员和虚函数的大小有关,而与其他普通函数成员无关,与构造函数析构函数也无关。
  3. 非静态成员计算大小时要记得内存补齐
  4. 所有虚函数只占一个指针的大小(即:类中所有虚函数共用一个虚函数指针,指向一个虚函数列表。)

使用sizeof()计算类的大小

《剑指offer》这本书里第22页有讲到sizeof()计算类大小的问题,在网上查阅了一些资料,进行了一些总结。欢迎补充指正! 1、类的大小       类的sizeof()大小一般是类中的所有成员的...
  • JIEJINQUANIL
  • JIEJINQUANIL
  • 2016年05月18日 21:12
  • 2215

使用sizeof计算联合体的大小

#include using namespace std; union u { double a ; int b ; }; union u2 { char a[13] ; in...
  • perfectguyipeng
  • perfectguyipeng
  • 2017年04月08日 22:16
  • 373

C++类的实例化对象的大小之sizeof()

C++类的实例化对象的大小之sizeof()
  • houqingdong2012
  • houqingdong2012
  • 2014年10月19日 20:02
  • 2226

sizeof() 类大小,空类大小

一个类的实例化对象所占空间的大小? 注意不要说类的大小,是类的对象的大小. 首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。 用sizeof运算符对一个类型名操作,得到的是具有...
  • liu_qiqi
  • liu_qiqi
  • 2013年07月16日 16:47
  • 11805

C++类中包含stl容器时,使用sizeof求大小的问题

这里的大小指的是sizeof(a class object)的值,也就是一个类的对象所占的字节大小,原来我一直认为类的大小会随着类成员中容器元素个数的变化而变化,后来想想又想不通,所以写了下面的代码用...
  • shihengzhen101
  • shihengzhen101
  • 2015年11月18日 22:45
  • 1334

sizeof获取数组长度

昨天开始看《算法导论》这本书,第一个算法就是(直接)插入排序,根据书里给出的伪代码写出了C语言代码,也根据自己的理解重新写了一个。虽然实现了算法的基本要求,但有些细节没有处理好,今天就来完善一下。 在...
  • u011852211
  • u011852211
  • 2016年10月06日 21:17
  • 5389

sizeof计算类的大小

转载地址为:http://blog.csdn.net/u013074465/article/details/42780825 一个空的类的大小为1个字节; 1.类的大小为类的非静态成员数据的类型大...
  • sinat_29844779
  • sinat_29844779
  • 2017年02月26日 21:23
  • 114

sizeof()功能:计算数据空间的字节数

1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。 而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示...
  • iamherego
  • iamherego
  • 2015年08月28日 10:07
  • 1218

sizeof计算类的大小

类的大小——sizeof 的研究(1) C++ 虚函数表解析
  • u013074465
  • u013074465
  • 2015年01月16日 19:19
  • 3906

sizeof浅析(三)——求类的大小

sizeof求类的大小和求结构体的大小,有一定的相似性,但又不完全相同,因为类存在这继承和派生、存在着虚函数。 1、空类大小 对于一个空类,使用sizeof求得其大小为1。 2、简单类 如下定义一个类...
  • szchtx
  • szchtx
  • 2013年08月24日 11:22
  • 5700
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:类的大小计算(sizeof())
举报原因:
原因补充:

(最多只允许输入30个字)