类的大小计算(sizeof())
2016-06-02 07:34
232 查看
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;类中所有虚函数共用一个虚函数指针,指向一个虚函数列表。
原则:
空类编译器会将sizeof()的值变为1;类的大小只与非静态成员和虚函数的大小有关,而与其他普通函数成员无关,与构造函数析构函数也无关。
非静态成员计算大小时要记得内存补齐
所有虚函数只占一个指针的大小(即:类中所有虚函数共用一个虚函数指针,指向一个虚函数列表。)
相关文章推荐
- Python Version 2.7 required which was not found in the registry
- Linux 下 Redis 安装详解
- linux raid while、until循环 bash组合测试条件
- Redis介绍以及安装(Linux)
- 第二次冲刺阶段第十天
- 查看redis(安装在linux服务器上)的版本
- 设计模式学习--享元模式
- ios常见的页面传值方式
- 通过Xsolla进入SOFORT
- 路由与控制器
- Ubuntu下 rsync同步文件实例
- Unity3D ParticleSystem粒子系统属性总结
- C语言回顾与再学习-exit and return
- 315Mhz、433Mhz无线遥控信号的解码分析和模拟
- Codeforces Round #355 (Div. 2)
- 基于DDD的.NET开发框架 - ABP工作单元(Unit of Work)
- [python]编码处理小结
- LRU计算缺页方法
- 怎么查看python是32位还是64位的
- 小酌重构系列[25]——终篇总结