首页 > 代码库 > effective c++ 思维导图
effective c++ 思维导图
历时两个多月的时间,终于把effective c++又复习了一遍,比较慢,看的是英文版,之前看的时候做过一些笔记,但不够详细,这次笔者是从头到尾的翻译了一遍,加了一些标题,先记录到word里面,然后发布到博客园上。这么做是为了方便查阅,复习C++,同时练习英文,希望这些帖子也能够对大家有所帮助。
有人回复说有些过时了,的确,但大部分还都是effective的,可以看scott meyers关于这个问题的的回复:
is effective c++ still effective?
精读一本经典书,每次都有新的发现。
笔者水平有限,肯定有很多错误或者说不明白的地方,希望大家能够指正。
将书的章节以思维导图的形式展示出来能够一目了然,也可以将这些章节联系起来,增加理解,现在有很多思维导图软件,但博客园只能插入图片,不能把链接也放入其中,所以只能用博客园的图表功能画一个“思维导表”出来了。
Effective C++ | 让你自己适应C++ | Item 1 将c++视为一个语言联邦 |
Item 2 尽量使用const,枚举(enums),内联(inlines),不要使用宏定义(define) | ||
Item 3 在任何可能的时候使用 const | ||
Item 4 确保对象被使用前进行初始化 | ||
构造函数,析构函数和赋值操作符 | Item 5 了解c++默认生成并调用的函数 | |
Item 6 如果你不想使用编译器自动生成的函数,你需要明确拒绝 | ||
Item 7 在多态基类中将析构函数声明为虚析构函数 | ||
Item 8 不要让异常(exceptions)离开析构函数 | ||
Item 9 绝不要在构造函数或者析构函数中调用虚函数 | ||
Item 10 让赋值运算符返回指向*this的引用 | ||
Item 11 在operator=中处理自我赋值 | ||
Item 12 拷贝对象的所有部分 | ||
设计和声明 | Item 13 用对象来管理资源 | |
Item 14 对资源管理类的拷贝行为要谨慎 | ||
Item 15 在资源管理类中提供对原生(raw)资源的访问 | ||
Item 16 成对使用new和delete时要用相同的形式 | ||
Item 17 使用单独语句将new出来的对象放入智能指针 | ||
Item 18 使接口容易被正确使用,不容易被误用 | ||
Item 19 像设计类型(type)一样设计类 | ||
Item 20 优先使用按const-引用传递(by-reference-to-const)而不是按值传递(by value) | ||
Item 21 当你必须返回一个对象的时候,不要尝试返回引用 | ||
Item 22 将数据成员声明成private | ||
Item 23 宁可使用非成员非友元函数函数也不使用成员函数 | ||
Item 24 如果函数的所有参数都需要类型转换,将其声明成非成员函数 | ||
Item 25 实现一个不抛出异常的swap | ||
实现 | Item 26 尽量推迟变量的定义 | |
Item 27 尽量少使用转型(casting) | ||
Item 28 不要返回指向对象内部数据(internals)的句柄(handles) | ||
Item 29 为异常安全的代码而努力 | ||
Item 30 理解内联的里里外外 (大师入场啦) | ||
Item 31 把文件之间的编译依赖降到最低 | ||
继承和面向对象设计 | Item 32 确保public继承建立“is-a”模型 | |
Item 33 避免隐藏继承而来的名字 | ||
Item 34 区分接口继承和实现继承 | ||
Item 35 考虑虚函数的替代者 | ||
Item 36 永远不要重新定义继承而来的非虚函数 | ||
Item 37 永远不要重新定义继承而来的函数默认参数值 | ||
Item 38 通过组合(composition)为 “has-a”或者“is-implemented-in-terms-of”建模 | ||
Item 39 明智而谨慎的使用private继承 | ||
Item 40 明智而谨慎的使用多继承 | ||
模板和泛型编程 | Item 41 理解隐式接口和编译期多态 | |
Item 42 理解typename的两种涵义 | ||
Item 43 了解如何访问模板化基类中的名字 | ||
Item 44 将与模板参数无关的代码抽离出来 | ||
Item 45 使用成员函数模板来接受“所有兼容类型” | ||
Item 46 如果想进行类型转换,在模板内部定义非成员函数 | ||
Item 47 使用traits class表示类型信息 | ||
Item 48 了解模板元编程 | ||
Item 49 理解new-handler的行为 | ||
定制new和delete | Item 50 了解何时替换new和delete 是有意义的 | |
Item 51 实现new和delete的时候要遵守约定 | ||
Item 52 如果你实现了placement new,你也要实现placement delete | ||
杂项 | Item 53 关注编译器发出的警告 | |
Item 54 让你自己熟悉包括TR1在内的标准库 | ||
Item 55 让你自己熟悉Boost |
effective c++ 思维导图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。