《深度探索C++对象模型》学习笔记——C++对象模型

原创 2012年03月24日 14:41:27

    Stroustrup 当初设计(当前亦仍占有优势)的C++对象模型是从简单对象模型派生而来的,并对内存空间和存取时间做了优化。在此模型中,Nonstaic 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(用以支持 runtime type identification,RTTI)也经由 virtual table 被指出来,通常是放在表格的第一个slot处。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

《深度学习C++对象模型》学习笔记2:构造函数语意学

构造函数语意学

《深度探索C++对象模型》读书笔记——Function 语意学【for_wind】

Member的各种调用方式

深度探索C++对象模型读书笔记——2.3 程序转化语意学

C++

《深度探索C++对象模型》阅读笔记(零)——引子

C++本不是门易学的语言,入门如此,进阶更甚,而当我从一个写C++程序之人,转变成调试大型C++工程之人的时候,我深切的感受到了C++的晦涩难懂。 当我面对一个个bug的时候,我是那么迷茫: 明明...

《深度探索C++对象模型》读书笔记——Data语意学【for_wind】

//整理之,分享之,欢迎指正。for_wind 1、类的实际大小。       每一个class object必须有足够的大小以容纳它所有的nonstatic data members。除了其...

《深度学习C++对象模型》学习笔记1:关于对象

1.C++在布局以及存取时间上的主要的额外负担是由virtual引起的,包括: 1)virtual function机制:用以实现一个有效率的“执行期绑定”;2)virtual base c...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)