Inside The C++ Object Model(Note):sizeof in an object
来源:互联网 发布:阿里云 cdn 免费 编辑:程序博客网 时间:2024/04/29 04:36
Data语义学:
在这一章中,类得数据成员以及层次体系是中心议题
数据成员一般表示这个类在程序执行时的某种状态,非静态数据成员放置的是“个别”class object感兴趣的数据
静态数据成员放置整个class感兴趣的数据
下面以下图说明这个空类体系的布局情况:
class X{ };
class Y:public virtual X { };
class Z:public virtual X { };
class A:public Y,public Z{ };
一.一个类得实际大小受到三个因素影响:
1.语言本身所造成的额外负担.比如 virtual ,虚基类.
这些额外的负担主要由实现virtual机制的指针引起.
2.编译器对于特殊情况所提供的优化处理
3.内存对齐(Alignment)的限制
sizeof(X) = 1, sizeof(Y) = 8, sizeof(Z) = 8, sizeof(A) = 12
结论:类X并非空,它被编译器填充1 byte(char)
X,Y,Z在传统编译器的内存布局
Visual C++的布局情况:
在visual C++ 中:sizeof(X) = 1 , sizeof(Y) = 4 , sizeof(Z) = 4 sizeof(A) = 8
综上:class A 的大小在某种程度上必须视所使用的编译器而定.
- Inside The C++ Object Model(Note):sizeof in an object
- Inside The C++ Object Model :note (1)
- Inside the C++ Object Model:note(2)
- Inside The C++ object model:note(3)
- Inside The C++ Object Model(Note):Member Initialization List
- Inside The C++ Object Model
- Inside the C++ Object Model
- 《Inside the C++ Object Model》
- Inside The C++ Object Model
- Inside The C++ Object Model
- Inside The C++ Object Model
- inside the c++ object model
- Inside The C++ Object Model ---- Object Lessons
- Inside in C++ Object Model Notes(1)
- 读Inside the C++ Object Model有感
- Inside The C++ Object Model 笔记
- 《Inside the C++ Object Model》拿到了
- Inside The C++ Object Model (一)
- log4j配置祥解
- UITableView探索
- Weblogic下部署服务遭遇各种问题的解决方案
- AsyncTask类的使用
- struts 实现文件上传与下载
- Inside The C++ Object Model(Note):sizeof in an object
- iphone viewWillAppear not firing
- 忘记了以su模式进入vim编辑器
- 上班第一件事
- 数据结构课程设计总结--学生作业管理系统
- java future模式
- Dom4j的使用
- 轻松通过系分论文考试
- SSH整合中 hibernate托管给Spring得到SessionFactory