深度探索C++对象模型的读书心得
来源:互联网 发布:淘宝检测中心 编辑:程序博客网 时间:2024/05/16 16:13
参考:深度探索C++对象模型 (stanley B.Lippman著 侯捷翻译)
1. Page9 : C++对象模型,说明每一个类仅有一个虚函数表Vtbl,而类的每一个对象都有指向其表的指针。
2. Page30:引用也需要与一个指针(大小为4BYTE)相同的空间。
3. Page28: 指针类型会教导编译器如何解释某个特定地址中的内存内容及大小。
4. Page39: explicit关键字能够制止“单一参数的constructor被当做一个Conversion运算符”
5. Page42: 被合成的default constructor只满足编译器的需要,而不是程序的需要。
6. Page53: 当一个类不展现bitwiste copy semantics(位逐次拷贝)需要编译器合成一个。
7. Page74:NRV(Name return value)也即是函数有返回值,其可以用在参数列表中多加一个参数来进行优化。
8. Page88:即使一个类class没有任何object实体,其static data memebers也已经存在。
9. Page92:只有含有virtual函数的类的对象,才有vptr指针。
10.Page95:每一个member的存取许可(private/public/protected),以及与class的关联,并不会导致任何空间上或执行时间上的额外负担------不论是在个别
的class objects或是在static data member本身。
11.Page97: name-mangling名字改编,名字重整
12.Page102:C++语言保证”出现在derived class中的base class subobject有其完整原样性“。
13.Page113:多重继承的问题主要发生于derived class objects和其第二或后继的base class objects之间的转换。
14.Page145:如果声明extern ”c” 会压抑non member fuction的“mangling”效果。
15.Page153:在C++中,多态表示“以一个public base class的指针(或引用)寻址出一个derived class object”的意思。
16.Page164:在多重继承之下,一个derived class内含n-1个额外的virtual tables(也就是其共有n个虚表),n表示其上一层的base classes的数目,因此
单一继承将不会有额外的virtual tables。
在学习C++对象模型的时候,我们主要学习编译器在背后为我们做了什么?如何做的?为什么这么做?(其主要还是为了时间、空间的效率以及与C的兼容性来考虑的)。
- 深度探索C++对象模型的读书心得
- 深度探索C++对象模型 读书总结
- 深度探索C++对象模型读书读书笔记
- 深度探索C++对象模型
- 【C++】深度探索C++对象模型之站在对象模型的顶端
- 【C++】深度探索C++对象模型之类存储
- 【C++】深度探索C++对象模型之Function语意学
- 《深度探索C++对象模型》
- 深度探索C++对象模型
- 深度探索C++对象模型
- 深度探索C++对象模型
- 《深度探索C++对象模型》
- 深度探索C++对象模型
- 深度探索C++对象模型
- 深度探索C++对象模型
- 《深度探索C++对象模型》
- 深度探索c++对象模型
- 深度探索c++对象模型
- 设置图层Layer颜色 cocos2dx
- pandas画图时如何调整保存图片的大小
- HDU1690:Bus System(Floyd)
- java 锁机制
- 树-堆结构练习——合并果子之哈夫曼树
- 深度探索C++对象模型的读书心得
- 慎用缺省构造函数的一种场景
- oracle rac环境参数修改的问题
- OC第四节NSArray,NSMutableArray,NSNumber总结
- 常用Sql Server 语法大全
- Android中BroadCastReceiver使用
- POJ1019--Number Sequence
- Hibernate单向多对多
- POJ 2418 Hardwood Species