![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度探索c++对象模型
墨然回首.
图形引擎开发
展开
-
2.1 C++类对象所占用的空间-为什么空类占用一个字节
一、空类占用一个子节 先看下面示例代码: #include <iostream> using namespace std; class A { public: }; //类对象所占的空间 int main() { A a; int ilen = sizeof(a); cout << ilen << endl; //输出 1 return...原创 2018-10-26 16:04:19 · 933 阅读 · 0 评论 -
2.2 C++对象结构的发展和演化-C++类的对象模型分析
一、非静态成员变量(普通成员变量)跟着类的对象走(存在对象内部),也就是每个类对象都有自己的成员变量。 示例代码: #include <iostream> using namespace std; class A { public: int a = 100; }; //类对象所占的空间 int main() { A aobj; int ilen = sizeof(aob...原创 2018-10-27 19:29:13 · 161 阅读 · 0 评论 -
2.3. this指针调整-this指针对象模型分析
一、先看编程实验: #include <iostream> using namespace std; class A { public: int a; //占4个字节 A() { printf("A::A()的this指针是:%p!\n", this); } void funcA() { printf("A::funcA()的this指针是:%p!\n", t...原创 2018-10-27 20:43:00 · 248 阅读 · 0 评论 -
分析obj(目标文件),构造函数语义
全部代码: #include &lt;iostream&gt; using namespace std; class M0TX { public: M0TX() //默认构造函数 { cout &lt;&lt; "wodeceshi" &lt;&lt; endl; } }; class MATX { public: MATX() //默认构造函数 { cou原创 2018-11-04 17:22:09 · 982 阅读 · 0 评论 -
[C++] 构造函数语义
一、 1.父类带缺省构造函数,子类没有任何构造函数,那因为父类这个缺省的构造函数要被调用,所以编译器会为这个子类合成出一个默认构造函数。 2.合成的目的是为了调用这个父类的构造函数。换句话说,编译器合成了默认的构造函数,并在其中安插代码,调用其父类的缺省构造函数。 二、 如果一个类含有虚函数,但没有任何构造函数时: 因为虚函数的存在, a)编译器会给我们生成一个基于该类的虚函数表vftable; ...原创 2018-11-14 23:42:28 · 200 阅读 · 0 评论