C++对象模型初探

来源:互联网 发布:高中信息技术vb知识点 编辑:程序博客网 时间:2024/06/02 02:13

 

C++中有两种class data membersstaticnon-static,以及三种class member functionsstaticnon-static virtual

 

简单对象模型:

一个object由一系列的slots组成,每一个slot指向一个memberslotsmembers的声明次序排列。

 

表格驱动对象模型:

一个object 由指向两个表的指针组成,这两个表分别是:member function table——包含指向member functionsslotsdata member table——直接包含data members

 

C++对象模型:

non-static data members被配置与每一个object之内,static data membersstatic/non-static member functions被放在所有object之外。Vitrual functions以两个步骤支持:

1.       每个class拥有一个virtual tablevtbl)包含指向virtual functions的指针。

2.       每个object拥有一个vptr(指向vtbl的指针),vptrconstructordestructorcopy assignment运算符完成设定和重置。

原创粉丝点击