C++常识——C++类的大小
来源:互联网 发布:巨人网络收购能过会吗 编辑:程序博客网 时间:2024/09/21 06:36
说明:
1.非纯虚函数的所有成员函数都不占类的大小
2.纯虚函数由于需要有一个指针指向虚表,因此会生成一个虚指针,占用4个字节
3.成员变量根据对齐规则不同而占用不同的内存
4.静态函数以及静态成员变量都不占用类的大小
5.空类占用1个字节
#include <iostream>using namespace std;class VirtualClass{ virtual void size() = 0;private:};class intClass{private: int m_int; //0-3 char c; //4-7 int m_int2; //8-15 double db; //16-23 char c2; //24-31 (总共占用32字节,8字节对齐!!)};class staticVariableClass{private: static int size();};class staticFuncClass{private: static int m_int;};class emptyClass {};#define OUT_CLASS_SIZE(_Class) do{\ cout << #_Class << " size is:" << sizeof(_Class) << endl;\}while (0);int main(){ OUT_CLASS_SIZE(VirtualClass); //4 ——纯虚函数占用4个字节 OUT_CLASS_SIZE(intClass); //32——非静态成员变量根据内存对齐方式占用内存 OUT_CLASS_SIZE(staticVariableClass); //1 ——静态成员变量不占用类大小 OUT_CLASS_SIZE(staticFuncClass); //1 ——静态成员函数不占用类大小 OUT_CLASS_SIZE(emptyClass); //1 ——空类占用1个字节 getchar(); return 0;}int staticVariableClass::size(){ return 0;}
运行结果:
0 0
- C常见的常识
- C++常识——C++类的大小
- C常识
- c常识
- [C++][常识]
- C的一些入门常识
- C 指针常识的小结
- C、C++、Java的基础常识介绍
- C++:类的大小(sizeof)
- c语言关于const的面试常识
- C语言的几个小常识
- 妈球的,C语言常识!!
- c与c++的一些常识
- C++中类的大小
- C语言基础常识
- C/C++小常识
- C/C++小常识
- C语言 杂常识
- 数据结构之三大查找
- 免费的车辆违章车首页接口封装
- Java学习笔记(反射+枚举类)
- Unity3D 5 官方教程:粒子系统 How-Tos
- 2016年3月8日JS做的字母大小写转换工具
- C++常识——C++类的大小
- CF 149D Coloring Brackets 彩色括号 区间DP
- FramebufferNativeWindow
- [BZOJ1093][ZJOI2007]最大半连通子图 强联通+拓扑排序+dp 做题笔记
- Boost skeleton-content 问题
- 包含min函数的栈 ---- 利用栈
- _StringAPI
- Spring MVC POST请求转到GET
- 内存泄露分析