类的占用内存大小

1. 类的大小为类的非静态成员数据的类型大小之和,也 就是说静态成员数据不作考虑。

2. 普通成员函数与sizeof无关。

3. 静态成员并不属于某个对象,sizeof取的是对象大小。

4. 虚函数由于要维护在虚函数表,所以要占据一个指针大小,也就是4字节。

5. 空类的sizeof为1。因为一个空类也要实例化,所谓类的实例化就是在内存中分配一块地址,每个实例在内存中都有独一无二的地址。同样空类也会被实例化,所以编译器会给空类隐含 的添加一个字节,这样空类实例化之后就有了独一无二的地址了。所以空类的sizeof为1。

6. Sizeof(类名)是在编译时就计算了的,一个类定义了,它所占的内存编译器就已经知道了,这时只是得到它占用的大小,并没有分配内存操作 。也可以这样想:编译器肯定知道大小了,这与分配内存空间无关,知道大小了,以后实例化了才能知道要分配多大。

类是抽象的,是不占有内存的,可是如果类生成实例那么将会在内存中分配一块内存来存储这个类。


 一个类对象的地址就是类所包含的这一片内存空间的首地址,这个首地址也就对应具体某一个成员变量的地址。

所有的函数都是存放在代码区的,不管是全局函数,还是成员函数

静态成员函数与一般成员函数的唯一区别就是没有this指针,因此不能访问非静态数据成员,静态函数也放在代码区。

sizeof访问的程序的数据段,而函数地址则被保存在代码段内。

他有多少个父类每个父类的大小加起来在加上自身就是sizeof的大小。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值