Effective C++
lxhjh
这个作者很懒,什么都没留下…
展开
-
Effective C++读书笔记 第一部分 让自己习惯C++
条款01:视C++为一个语言联邦 本条款提示读者,C++已经不是一门很单一的语言,而应该将之视为一个由相关语言组成的联邦。从语言形式上看,它是一个多重范型编程语言(multiparadigm programminglanguage) ,一个同时支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional) 、泛型形式(generic)原创 2013-05-21 09:47:39 · 822 阅读 · 0 评论 -
Effective C++读书笔记 第三部分 资源管理
所谓资源就是,一旦用了它,将来必须还给系统。C++程序中最常使用的资源就好似动态分配内存(如果你new了,却忘了delete,会导致内存泄露),但内存只是你必须管理的众多资源之一。其它常见的有文件描述符(file descriptors)、互斥器(mutex)、图形界面中的字形和画刷。数据库连接以及网络sockets。当你不使用它们时,记得还给系统。 当你考虑到异常、函数内多重回传原创 2013-05-21 12:26:41 · 817 阅读 · 0 评论 -
Effective C++读书笔记 第四部分 设计与声明
所谓软件设计,是“令软件做出你希望它做的事情”的步骤和做法,通常以颇为一般性的构想开始,最终变成十足的细节,以允许特殊接口的开发。 条款18:让接口容易被正确使用,不易被误用 理想上,如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不该通过编译;如果代码通过了编译,它的作为就该是客户所想要的。 欲开发一个“容易被正确使用,不容易被误用”的接口,首先必须考虑客户可能做原创 2013-05-21 12:39:54 · 724 阅读 · 0 评论 -
Effective C++读书笔记 第七部分 模板与泛型编程
条款41:了解隐式接口和编译期多态 (1) class和templates都支持接口(interfaces)和多态(polymorphism)。 (2) 对classes而言接口是显式的(explicit),以函数签名为中心。多态则是通过virtual函数发生于运行期。 (3) 对template参数而言,接口是隐式的(implicit),奠基于有效表达式;多态则是通过template具现化原创 2013-05-21 13:59:02 · 769 阅读 · 0 评论 -
Effective C++读书笔记 第五部分 实现(Implementations)
大多数情况下,适当提出你的类定义以及函数声明,是花费最多心力的两件事。尽管如此,还是有很多东西需要小心:太快定义变量可能造成效率上的拖延;过度使用转型(casts)可能导致代码变慢又难维护,又招来微妙难解的错误;返回对象“内部数据之号码牌(handls)”可能会破坏封装并留给客户虚吊号码牌;为考虑异常带来的冲击则可能导致资源泄漏和数据败坏;过度热心地inlining可能引起代码膨胀;过度耦合则可能原创 2013-05-21 12:56:33 · 752 阅读 · 0 评论 -
Effective C++读书笔记 第九部分 杂项讨论
条款53: 不要轻忽编译器的警告 条款54: 让自己熟悉包括TR1在内的标准程序库 本条款告诉程序员: 1.C++标准程序库的主要机能由STL、iostreams、locales组成,并包括C99标准程序库。 2.TR1添加了智能指针、一般化函数指针、hash-based容器、正则表达式,以及另外10个组件的支持。 3.TR1自身只是一个规范。为获得tr1提供的好处,你需要一份实物。一个原创 2013-05-21 14:39:18 · 805 阅读 · 0 评论 -
Effective C++读书笔记 第二部分 构造/析构/赋值运算
条款05: 了解C++ 默默编写并调用哪些函数 本条款告诉程序员,编译器自动为你做了哪些事情。 用户定义一个empty class (空类),当C++ 处理过它之后,如果你自己没声明,编译器就会为它声明(编译器版本的)一个copy 构造函数、一个copy assignment操作符和一个析构函数。此外如果你没有声明任何构造函数,编译器也会为你声明一个default 构造函数。所有这些函数都是p原创 2013-05-21 11:42:40 · 847 阅读 · 0 评论 -
Effective C++读书笔记 第六部分 继承与面向对象设计
如果你了解C++各种特性的意义,你会发现,你对OOP的看法改变了。它不再是一项用来划分语言特性的仪典,而是可以让你通过它说出你对软件系统的想法。一旦你知道该通过它说些什么,移转至C++世界也就不再是可怕的高要求了。 条款32:确定你的public继承塑模出is-a关系 以C++进行面向对象编程,最重要的一个规则是:public inheritance(公有继承)意味is-a(是一种)原创 2013-05-21 13:30:44 · 894 阅读 · 0 评论 -
Effective C++读书笔记 第八部分 定制new和delete
条款49: 了解new-handler 的行为 (1) set_new_handler 允许客户指定一个函数,在内存分配无法获得满足时被调用。 (2) No-throw new 是一个颇为局限的工具,因为它只适用于内存分配;后继的构造函数调用还是可能抛出bad_alloc异常。 条款50: 了解new 和delete 的合理替换时机 有许多理由需要写个自定的口new 和delete ,包括原创 2013-05-21 14:02:42 · 935 阅读 · 0 评论