![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度探索C++对象模型
文章平均质量分 74
RaKiRaKiRa
Shoot low, Aim high!
展开
-
【深度探索C++对象模型】(2)构造函数语意学
1.Default Constructor的构造操作 默认构造函数是在编译器需要的时候构建出来的,被合成的默认构造函数只执行编译器所需的动作。被合成的默认构造函数中只有base class subobjects以及member class objects会被初始化,而其他nonstatic data member(如整数、指针、数组)都不会初始化,因为他们是满足程序需要的。 有四种情况会使得编译器...原创 2018-11-21 20:44:42 · 224 阅读 · 0 评论 -
【深度探索C++对象模型】(1)关于对象
哎 再开新坑,希望19年能把开的这几个坑都填上。 class : 类 class object : 类对象 1.1 C++对象模型 简单来说,C++对象模型的实例的组成包括下面几个部分: Nonstatic data members与**virtual pointer(vptr)**储存在class object内 Static data members、Static functions mem...原创 2018-11-19 13:42:54 · 189 阅读 · 0 评论 -
【深度探索C++对象模型】(2.5)bitwise和memberwise
在看《深入探索C++对象模型》这本书的时候,我看见了bitwise senimatics和memberwise senimatics,看的时候还不清楚这两个是什么意思,书本上直接使用的是英文,所以我的直译就是位逐次语意和成员逐次语意,经过一番百度后才发现原来就是简单的浅拷贝和深拷贝的区别。 有四种情况表示class不展示出bitwise copy semantics: 当class中含有一个声明...原创 2018-11-25 15:22:01 · 357 阅读 · 0 评论 -
【深度探索C++对象模型】(3)DATA语意学
假设有代码 class X{ }; class Y : public virtual X { }; class Z : public virtual X { }; class A : public Y, public Z { }; sizeof(X()); //1 sizeof(Y()); //8或4 sizeof(Z()); //8或4 sizeof(A()); //12或8 X、Y、Z、A内...原创 2018-11-26 21:51:12 · 158 阅读 · 0 评论