10 2012 档案

《inside the c++ object model》读书笔记 之七 站在对象模型的尖端
摘要:...这一章主要讨论三个著名的C++语言扩充性质,它们分别是:template,exception和runtime type identification.7.1 template: 有关template的三个主要讨论方向: 1)template的声明,基本上来说就是当你声明一个template class,template class member function等等时,会发生什么事. 2)如何具现出class object以及inline nonmember,以及member template functions,这些是"每一个编译单位都会拥有一份实体"的东西. 3) 阅读全文

posted @ 2012-10-30 12:26 碎雨 阅读(301) 评论(0) 推荐(0) 编辑

《inside the c++ object model》读书笔记 之六 执行期语意学
摘要:6.1 对象的构造和解构: 如果一个区段(以{}括起来的区域)或是函数中有一个以上的离开点,情况会混乱一些,因为destructor必须放在每一个离开点(当object还活着时)之前,同样,goto语句也可能需要许多个destructor调用操作,一般而言,我们会把object尽可能放置在使用它的那个程序区段附近,这样做可以节省不必要的对象产生和摧毁操作....全局对象:例如有如下程序片段:Matrix identity;main(){ Matrix mi=identity; //... //... return 0;} C++保证,一定会在main()函数中第一次用到identity之前,把 阅读全文

posted @ 2012-10-30 12:23 碎雨 阅读(376) 评论(0) 推荐(0) 编辑

《inside the c++ object model》读书笔记 之五 构造,解构,拷贝语意学
摘要:...引子:每一个derived class destructor会被编译器扩展,以静态调用的方式调用其"每一个virtual base class"以及"上一层base class的destructor",因此,只要缺乏任何一个base class destructor的定义,就会导致链接的失败,并且,比较好的设计模式是,不要把virtual destructor声明为pure. 一般而言,把所有的成员函数声明为virtual function,然后在靠编译器的优化操作把不必要的额外virtual invocation去处,不是一个好的设计理念. 关于 阅读全文

posted @ 2012-10-23 22:33 碎雨 阅读(337) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示