C++之类所占内存空间
来源:互联网 发布:网络信息系统 编辑:程序博客网 时间:2024/06/10 00:58
由于类的成员较多,所以很容易将类对象到底占多少内存弄混,所以自己写这篇文章,看下编译器到底给类对象分配多少内存空间。
一、类为空的情况下,对象所占内存空间
那为什类对象为空,还会占用内存空间呢?
其实很容易理解,C++要求所有的每个实例在内存中有独一无二的地址,想想也是,如果没有独一无二的地址,那程序怎么找到那个变量呢。
像上例中的对象没有成员,那咋办呢,那编译器就只能给类对象隐式添加一个字节,这样就有了内存地址。
二、只有普通数据成员时,对象所占内存空间
运行结果为4。
当类定义中只有数据成员时,对象所占内存空间为所有数据成员所占空间之和。但是C++标准中要求int型的最小存储位数是16位,也就是2个字节。可是这里对象占4个字节。
感到疑惑,所有又弄了个例子
这回运行结果是16,那就可以这样理解了,类对象中的数据成员一个最少占用4个字节,为什么说最少呢,因为又弄了个例子。
运行结果是28,不管怎样,数据成员所占空间最少为4个字节,如果比4个字节大,那也是4的倍数。这就是对齐原则了。
三、那有了静态数据成员那会怎样呢
运行结果还是28,可见静态数据成员属于类,而不是某一特定对象,也并不存储在某一特定对象中,不占内存空间。
四、加入普通成员函数的类对象
运行结果还是28,所以说普通成员函数是不占内存空间的。
五、接下来会写静态成员函数,虚成员函数,子类对象的内存空间问题
0 0
- C++之类所占内存空间
- 类所占内存空间总结
- 类,函数所占内存空间
- 访问其他应用程序所占的内存空间
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- C++中的类所占内存空间总结
- logback高级特性使用(三)
- 程序编程
- IOS开发中,SVN如何恢复到某一个版本(以Cornerstone为例)
- 两台服务器之间备份目录或文件的shell脚本
- marign拾遗(3)比较marign与position:relative
- C++之类所占内存空间
- django 中文显示
- Package gp in the OpenCASCADE
- 字符编码的转换iconv
- 边框效果html+css
- 循环冗余校验(CRC)算法入门引导
- 通向互联网未来的七个路标
- TCP三次握手建立连接四次挥手关闭连接
- 编程与织毛衣