您的位置:首页 > 编程语言 > C语言/C++

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》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: