C++对象模型

nonstatic data members 被置于每一个class object之内

static data members 被存放到所有的class object之外

static nonstatic function members 被放到所有的class object之外

virtual functions则以两个步骤支持之:

 1.每一个class产出一堆指向virtual functions的指针,放在表格之中,这个表格被称为virtual table(vtbl);

2. 每一个class object被添加了一个指针,指向相关的virtual table,通常这个指针被称为vptr. vptr的设定和重置都由每一个class的constructor、destructor和copy assignment运算符自动完成。每一个class所关联的type_info object也经由virtual table被指出来,通常是放在表格的第一个slot处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容