现在的位置: 首页 > 综合 > 正文

《深度探索C++对象模型》读书笔记1:引言,《深度探索C++对象模型》值得一读

2013年07月04日 ⁄ 综合 ⁄ 共 1133字 ⁄ 字号 评论关闭

《深度探索C++对象模型》为我们揭开了C++语言封装背后的技术细节,读完之后有一种“醍醐灌顶”的感觉。我想把自己的心得书写成文,一方面跟朋友们分享C++底层的奥秘,另一方面也是对C++的一次复习和总结。我会尽量用浅显的语言让朋友们在读完这系列文章之后,能够对《深度探索C++对象模型》有一个比较全面的认识。当然,如果您有什么不懂的地方也可以留言以交流。

在这个系列的文章中,我会从一个初学者的角度出发,阐述从这本书中可以学到什么,以及如何利用它们来指导我们的coding。当然这本书更适合具有一定开发经验之后的研读,而且值得一读再读,相信每一次您都会从这本书中有新的发现。

作为引言的第二部分,我将极力向大家推荐这本《深度探索C++对象模型》,阐述为什么一定要读这本书,他会给我们带来什么样的惊喜呢?

1、借用侯捷老师的译序,对于传统的结构化语言(比如C),虽然在函数的调用背后,也存在着堆栈建立、参数排列、返回地址、堆栈清除等幕后机制,但函数调用是那么地自然而明显,好像只是夹带着一个包裹,从程序的某一个地点跳到另一个地点去执行。

而对于面向对象语言(比如C++Java等),我们有着太多的疑惑。究其因,编译器为我们做了太多的服务:构造函数、析构函数、虚拟函数、继承、多态……有时候它还会为我们生成一些额外的函数或者运算符,有时候它又扩张我们所写的函数内容,加入进更多的操作,还有时候它为我们的Objects添油加醋,放进一些奇妙的东西,使你面对着对象的sizeof结果大惊失色。

编译器到底为我们做了什么,为什么强大的C++面向对象语言能够“自动完成”那么多的事情?本书将为你一一解开这些迷团。

2、对象模型是深层结构的知识,虚函数、虚继承,种种这些对象要素在内存中是如何组织,如何存储的?读完这本书之后,您将会对“构造和析构函数、虚拟函数、虚拟继承、虚拟接口以及多态”有一个脱胎换骨的新认识,明白什么时候该提供默认构造函数,懂得C++的多态为什么必须通过父类的指针或者引用调用子类的虚函数来实现。

3、在C++语言提供了封装、继承和多态之后,它是否因此而变得庞大而迟缓。对比简单小巧的C语言,C++是否会在执行期带来额外的负担?Stanley B.Lippman将为你拨开层层迷雾,还原给您一个真实的C++执行期效率。

4、如果你对COM技术感兴趣,或者将要学习COM技术,那么这本书将为您的COM之路打开一条宽敞的入口,因为COM技术的思想就是从C++对象模型得到的启发,《COM本质论》中曾不只一次提到《深度探索C++对象模型》这本力作。

读到这里,或许您已经迫不及待地想要通读这本著作了,接下来,让我们一起走进C++对象模型的内部世界,看一看C++冰山之下的壮丽美景吧。

 

抱歉!评论已关闭.