
effective c++ 阅读笔记
文章平均质量分 83
iteye_16109
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
effective C++ -- 让自己习惯C++
这段时间看了一遍<Effective C++>,从中了解了很多C++特性,以及少量设计模式的基础知识,增加了我阅读C++对象模型及设计模式这两本书的欲望,这确实是一本关于C++的非常好的书。不过正如云风所讲,“总觉得书里讲的太细,太多观点本是好的,只是局限在了 C++ 语言中。明明是 C++ 的缺陷,却让人绞尽心力的回避那些问题,或是以 C++ 独特的方式回避。在别的语言中不该存在的问...原创 2012-02-11 14:59:49 · 169 阅读 · 0 评论 -
effective c++ -- 构造/析构/赋值运算
第二章的内容比较简单,基本没有太多深意,从其标题就能想到其内容的那种,所以就只稍微做一下总结吧。 Item 5: 了解C++默认编写并调用哪些函数编译器暗自为class创建的函数(如果用户没有自己声明)包括:default构造函数,copy构造函数,copy assignment操作符以及析构函数。自动生成的default构造函数、析构函数做的事情包括调用base classes和non-...原创 2012-02-11 16:47:33 · 142 阅读 · 0 评论 -
effective c++ -- 资源管理
所谓资源就是,一旦用了它,将来必须还给系统。最常见的资源是动态分配内存,另外常见的资源还有:文件描述器、互斥锁、图形界面中的字形和笔刷、数据库连接、以及网络socket. Item 13: 以对象管理资源该条款背后的思想在于:把资源放进对象内,我们被可以倚赖C++的“析构函数自动调用机制”确保资源被释放。假设如下类及函数: class Investment { ... }; //继承体系...原创 2012-02-11 18:26:08 · 152 阅读 · 0 评论 -
effective c++ -- 设计与声明
本章对良好C++接口的设计与声明提出了一些建议,提供了错误接口可能带来的后患的一些例子。总的来说,良好的设计就是“让接口容易被使用,不容易被误用”。 Item 18: 让接口容易被使用,不容易被误用要做到这一点,首先必须考虑客户(即使用该接口的人)可能做出什么样的错误。例如一个日期class的构造函数: class Date{ public: Date( int mont...原创 2012-02-13 19:19:56 · 123 阅读 · 0 评论 -
effective c++ -- 实现
这一章叙述了实现过程中应该考虑的一些问题,例如,太快定义变量可能造成效率上的拖延;过度使用转型可能导致代码变慢又难维护,又招来微妙难解的错误;返回对象“对象内部数据之handle”可能会封装并留给用户虚吊handle;未考虑异常带来的冲击则可能导致资源泄露和数据败坏;过度热心地inlining可能引起代码膨胀;过度耦合则可能导致让人不满意的冗长建置时间。 [b]Item 26: 尽可能延后变...原创 2012-02-14 20:31:36 · 193 阅读 · 0 评论 -
effective c++ -- 继承与面向对象设计
继承与面向对象设计中,涉及了继承方式,即public、private及protected继承方式,继承体系中的屏蔽问题,成员函数virtual、non-virtual的选择以及多重继承等。 [b]Item 32: 确定你的public继承塑模出is-a关系[/b] 以C++进行面向对象编程,最重要的一个规则是:public inheritance意味is-a的关系,于是,基类对象B可以派上...原创 2012-02-15 18:01:12 · 239 阅读 · 0 评论 -
effective c++ -- 模板与泛型编程
面向对象提供了运行期的多态,而模板则提供了编译期的多态。模板的编译期多态机制使得函数匹配机制相对于非模板的函数匹配发生了一些变化,也影响了继承体系下的一些声明与设计。本章讲解了模板的编译期多态对我们原先所熟悉的没有模板的世界的一些区别,最后介绍了traits class以及template元编程。 [b]Item 41: 了解隐式接口和编译期多态[/b] 通常显式接口由函数的签名式(函数名...原创 2012-02-16 16:21:22 · 171 阅读 · 0 评论 -
effective c++ -- 定制new和delete
这一章讲述了C++中的new和delete背后的一些机制,以及重写new和delete需要遵守的一些规则,以及什么时候适合重写new和delete以提高效率。 [b]Item 49: 了解new-handler的行为[/b] 当operator new无法满足某一内存分配需求时,它会调用一个客户指定的错误处理函数,及new-handler,new-handler可能会为operator n...原创 2012-02-17 15:23:48 · 261 阅读 · 0 评论