C++对象模型
2004-08-08 16:46
337 查看
1.简单对象模型
一个Object由一系列的slots构成,每个slot指向一个data member或constructor或destructor或function member。Object只包含指针。每个base class subobject都可由一个slot指出。
优点:编译器设计简单。
缺点:空间和执行期效率。
2.表格驱动对象模型
分为两个table,一个指向data member table(直接含实际数据),一个指向function member table(内含函数地址)。
优点:可以方便地支持virtual function。
缺点:空间和执行期效率。
3.C++对象模型
每个Object直接包含实际的data member,在最后添加一个指针vptr指向virtual table(内含一系列virtual function指针和一个通常在最前面的RTTI指针)。vptr的设定和重置由constructor,destructor和copy assignment自动完成。
优点:空间和时间效率高。
缺点:与之相关的base class代码修改后都得重新编译。
-- 《Inside The C++ Object Model》
一个Object由一系列的slots构成,每个slot指向一个data member或constructor或destructor或function member。Object只包含指针。每个base class subobject都可由一个slot指出。
优点:编译器设计简单。
缺点:空间和执行期效率。
2.表格驱动对象模型
分为两个table,一个指向data member table(直接含实际数据),一个指向function member table(内含函数地址)。
优点:可以方便地支持virtual function。
缺点:空间和执行期效率。
3.C++对象模型
每个Object直接包含实际的data member,在最后添加一个指针vptr指向virtual table(内含一系列virtual function指针和一个通常在最前面的RTTI指针)。vptr的设定和重置由constructor,destructor和copy assignment自动完成。
优点:空间和时间效率高。
缺点:与之相关的base class代码修改后都得重新编译。
-- 《Inside The C++ Object Model》
相关文章推荐
- C++对象模型解析三
- boolan——c++学习笔记之多态对象模型
- c++对象模型
- c++ 、java 、 oc 对象模型比较(干货)
- C++对象模型
- C++对象模型详解(上)
- [C++对象模型][4]指针与字符串
- 【C++对象模型】之虚函数详解
- 深度搜索C++对象模型(理念总结)
- 对C++中含有虚基类对象模型的思考
- C++对象模型之内存布局二
- C++对象模型 第二章 构造函数语意学
- C++对象模型--C++对象模型
- 【C++对象模型】构造函数语意学之二 拷贝构造函数
- C++对象模型之简单对象模型(1)
- 深度探索C++对象模型 第五章 构造、析构、拷贝语意学
- C++ 对象模型
- C++对象模型,很多东西来自《Inside the C++ Object Model》一书
- C++对象模型(二)
- 深入探索C++对象模型