Inside The C++ Object Model :note (1)
2011-07-10 20:02
465 查看
1.C++ 在布局以及存取时间上的主要的额外开销是由virtual引起,包括:virtual function机制:用以支持一个小效率的执行期绑定
virtual base class 用以实现“多次出现在集成体系中的base class,有一个单一而被共享的实体”
另外还有一些额外开销,发生在“一个派生类和其第二或后继之基类之间的转换”之间。
2.C++对象模型
i.简单模型
一个对象有一系列的slots(指向成员的指针)组成(指针数组),每个slot(指针)指向一个成员。
注:此模型未应用于实际产品
ii.表格驱动对象模型
对象维护两个slots,分别指向数据成员表和函数成员表
![](http://hi.csdn.net/attachment/201107/10/0_1310298189DeS4.gif)
注:此模型未实际应用于产品
iii.C++对象模型
非静态数据成员被配置在每一个对象之内,静态数据成员,静态和非静态函数成员被放在所有对象之外
虚函数则以两个步骤支持:1.每个类对象维护一个指向virtual table(vtbl)的指针(vptr).vptr的设定和重置都由每个类的constructor,destructor和copy assignment
运算符自动完成。每个类所关联的type_info object用以支持runtime type identification,RTTI.
2.vtbl是一个指针数组,维护指向类之virtual function的指针。
virtual base class 用以实现“多次出现在集成体系中的base class,有一个单一而被共享的实体”
另外还有一些额外开销,发生在“一个派生类和其第二或后继之基类之间的转换”之间。
2.C++对象模型
i.简单模型
一个对象有一系列的slots(指向成员的指针)组成(指针数组),每个slot(指针)指向一个成员。
注:此模型未应用于实际产品
ii.表格驱动对象模型
对象维护两个slots,分别指向数据成员表和函数成员表
![](http://hi.csdn.net/attachment/201107/10/0_1310298189DeS4.gif)
注:此模型未实际应用于产品
iii.C++对象模型
非静态数据成员被配置在每一个对象之内,静态数据成员,静态和非静态函数成员被放在所有对象之外
虚函数则以两个步骤支持:1.每个类对象维护一个指向virtual table(vtbl)的指针(vptr).vptr的设定和重置都由每个类的constructor,destructor和copy assignment
运算符自动完成。每个类所关联的type_info object用以支持runtime type identification,RTTI.
2.vtbl是一个指针数组,维护指向类之virtual function的指针。
![](http://hi.csdn.net/attachment/201107/10/0_1310299261WSRC.gif)
相关文章推荐
- Inside the C++ Object Model:note(2)
- Inside The C++ Object Model(Note):Member Initialization List
- Inside The C++ object model:note(3)
- Inside The C++ Object Model(Note):sizeof in an object
- Inside The c++ Object Model"勘误"
- Inside the C++ Object Model 深度探索对象模型 5-Construction 6-Runtime 7-Object
- Inside The C++ Object Model (深度探索C++对象模型) 第一讲 关于对象
- 《Inside the C++ Object Model》关于基类与派生类的Tips
- C++对象模型《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学习笔记[Chap1.1]
- 《Inside the C++ Object Model》笔记(1~7章)
- 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记
- Inside the C++ Object Model 深度探索对象模型 3-DATA 4-Function
- 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记
- 读书笔记《Inside the C++ Object Model》:关于对象
- Inside The C++ Object Model ---- The Semantics of Constructors
- 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记