
深度探索C++对象模型
穹野-嘻嘻
这个作者很懒,什么都没留下…
展开
-
深度探索C++对象模型笔记 —— 第二章
有四种情况,编译器必须为未声明构造函数的类合成一个默认构造函数,四种情况为:“带有默认构造函数”的成员类对象,“带有默认构造函数”的基类,“带有虚函数”的类,在继承链中有虚继承的。至于没有存在这四种情况而又没有声明任何构造函数的class,它们拥有的是implicit trivial default constructions,它们实际上并不会被合成出来在合成的默认构造函数中,只有base c...原创 2019-09-03 20:00:56 · 182 阅读 · 0 评论 -
深度探索C++对象模型笔记 —— 第三章
空类的大小是1,为了使得这一class的两个object得以在内存中配置独一无二的地址原创 2019-09-03 20:00:27 · 195 阅读 · 0 评论 -
深度探索C++对象模型笔记 —— 第一章
C++在布局以及存取时间上主要的额外负担是由virtual引起的,包括虚函数和虚继承多态是通过指针或引用来完成的Librarary_meterials thing1; class Book:public Librarary_meterials {...}; Book book; //thing1不是一个Book,book被裁切了,不过thing1仍保有一个Librarary_meteri...原创 2019-09-02 11:41:26 · 273 阅读 · 0 评论 -
深度探索C++对象模型笔记 —— 第四章
静态成员函数不能直接存取其class中的nonstatic members;不能够被声明Wieconst,volatile或virtual;它不需要经由class object才被调用——虽然大部分时候它是这样被调用的ptr->z();一般而言,每次调用z()时,并不知道ptr所指对象的真正类型,然而我们知道经由ptr可以存取到该对象的virtual table;虽然不知道哪一个z(...原创 2019-09-03 21:14:38 · 254 阅读 · 0 评论 -
深度探索C++对象模型笔记 —— 第五章
inline和define原创 2019-09-10 21:09:10 · 255 阅读 · 0 评论 -
深度探索C++对象模型笔记 —— 第七章
Point< float >* ptr=0;程序中什么都没发生,因为一个指向class object的指针,本身并不是一个class object,编译器不需要知道与该class有关的任何members的数据或object布局数据,所以将一个“Point的一个float实例”实例化也就没有必要了如果是引用呢,假设const Point< float >&ref...原创 2019-09-18 23:21:44 · 196 阅读 · 0 评论 -
深度探索C++对象模型笔记 —— 第六章
C++程序中所有的global objects都被放置在程序的data segment,如果显示指定给它一个值,此object将以该值为初值,否则object所配置到的内存内容为0原创 2019-09-18 23:21:54 · 172 阅读 · 0 评论