深度探索c++对象模型前4章读后感
2013-09-28 00:10
155 查看
最近经别人推荐买了本新书<<inside the c++ object model>>读了前4章,感觉受益颇多,让我对c++区别于c的实现机制有了更加清楚的了解,以及对面向对象模型的构建有了更加清晰的认识。
我这个人很懒,只想总结精华的部分:
1.c++的类拥有vtable指针,指针指向的记录有类类型、虚函数的地址、虚基偏移量等信息,来实现c++的精华特色:多态(当然前提必须该类有虚函数或者有虚继承一个基类才会有这个虚函数表)。
2.c++的单继承、多继承、以及虚继承之间的内存模型之间的区别:(假定每一个类都有虚函数,或基类有虚函数)
2.1. 继承的类如果有vtable的 则公用继承第一个父类的vtable
2.2. 多继承情况下会拥有多个vtable,调用函数时this指针也会有偏移,多重继承的内存模型的分部情况
2.3. 对于虚基继承的情况内存模型
3.根据2所述,以后尽量不使用多继承以及虚基继承
4. 了解了关于c++编译器处理编译c++优化的相关知识
总之感觉这本书很值得一读,我会将这本书慢慢读完的~~~
我这个人很懒,只想总结精华的部分:
1.c++的类拥有vtable指针,指针指向的记录有类类型、虚函数的地址、虚基偏移量等信息,来实现c++的精华特色:多态(当然前提必须该类有虚函数或者有虚继承一个基类才会有这个虚函数表)。
2.c++的单继承、多继承、以及虚继承之间的内存模型之间的区别:(假定每一个类都有虚函数,或基类有虚函数)
2.1. 继承的类如果有vtable的 则公用继承第一个父类的vtable
2.2. 多继承情况下会拥有多个vtable,调用函数时this指针也会有偏移,多重继承的内存模型的分部情况
2.3. 对于虚基继承的情况内存模型
3.根据2所述,以后尽量不使用多继承以及虚基继承
4. 了解了关于c++编译器处理编译c++优化的相关知识
总之感觉这本书很值得一读,我会将这本书慢慢读完的~~~
相关文章推荐
- 深度探索C++ 对象模型【第五章3】
- [深度探索C++对象模型] 默认构造函数和拷贝构造函数的构造操作
- 【深度探索C++对象模型】data语义学
- Inside the C++ Object Model 深度探索对象模型 5-Construction 6-Runtime 7-Object
- 深度探索C++对象模型复习和学习 第二章:构造函数语义学(The Semantics of Constructors)
- 深度探索C++对象模型-构造函数语义学
- 深度探索C++对象模型--带有default constructor的Base class
- 读【深度探索C++对象模型】【下】
- 深度探索C++对象模型 第五章 构造、析构、拷贝语意学
- 深度探索C++对象模型之前言
- 读书笔记-深度探索C++对象模型-Chapter7
- 深度探索C++对象模型->2.3 程序转化语意学
- 深度探索C++ 对象模型【第一章2】
- 深度探索C++对象模型——Function语意学
- 深度探索c++对象模型之虚继承的对象构造
- [深度探索C++对象模型]trival constructor和non-trival constructor
- 【C++】深度探索C++对象模型之构造、析构、拷贝语意学
- 深度探索C++对象模型1
- 《深度探索c++ 对象模型》有感之构造函数和析构函数不能调用虚函数
- 读【深度探索C++对象模型】【下】