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
时间: 2024-08-08 09:41:10

effective c++ 思维导图的相关文章

Effective JAVA 思维导图

精心整理「服务器Linux C/C++」 成长路程(附思维导图)

前言 我不是名校毕业,更没有大厂的背景,我只是一个毕业不到 2 年的普普通通的程序员,在摸爬滚打的工作这段时间里,深知了有一个「完整的知识体系」是非常重要的.当事人非常后悔没有在大学期间知道这个道理-- 众多大厂招人的需求也是非常注重此方面,毕竟我们不能单单只是一个只会写代码的程序员,更应该成为一个全面的工程师,能够迅速解决工作上的需求及众多问题. 特此,我根据众多大佬的书籍推荐和豆瓣的高分书籍总结了一份较为全面的「服务器Linux C/C++」 成长路程,我自己也是在跟着这份思维导图进一步的学

物联网世界常见传输方式简介(思维导图)

物联网世界常见的传输方式包括:移动网络(2G/3G/4G).wifi.蓝牙.ZigBee等传统的传输方式,以及基于NB-IOT.Lora等新兴的传输方式.以下思维导图供参考: 点击附件下载原图.

Node 即学即用 笔记 思维导图

Node即学即用 REPL(Read-Evaluate-Print-Loop) console.log .clear .help .exit require('http') createServer 聊天服务器 tcp服务器 require('net') on connection on data on end on error telnet express app.get app.post -app.js -public -views ----partials EJS模板语言 测试 requi

思维导图分析http之前端组成

思维导图分析http前端组成 全文总览 本文分为三个部分:前端组成,http协议,http服务器应用程序.http的应用按照我自己的理解分为前端应用以及后端应用,所以我分别写了前端组成以及http服务器应用程序两章,中间穿插了一章http协议,主要介绍了http协议. 2.前端组成 这里的前端主要指web前端,即网页前端.前端部分分为三个部分:html,css,js.html负责网页页面的结构布局以及静态内容的排版:css称为层级样式表,主要有页面布局,添加样式,美化页面的功能:js是脚本编程语

关于一个简易的实时内存监控系统的思维导图

非常感谢爱蘑菇的狗的文章(原文引用:http://www.cnblogs.com/shengxinjing/p/python.html),建议可以先从头跟着这一篇文章做一遍.在这个基础上,还可以做出其他的一些扩展哈,比如说CPU.进程等等.以下是我做完这个小项目之后写的思维导图.

机器学习算法思维导图总结篇

学习机器学习零零散散将近1年之久,期间也想做各种方式的总结.笔记,但因总总原因没能写出一个系列,加上当时理解尚浅.主次分不清,所以写笔记也就作罢.自己在草稿纸上推导,也是写完就扔.一路曲曲折折,踩了很多的坑,但总算有些许收获.面临毕业找工作,对机器学习也挺感兴趣,要找这方面的工作,所以,做此总结.一来记录自己的学习所得,二来为了找工作的面试复习一下.网上机器学习方面的文章很多,"浩如烟海",一点不为过,好多讲的都很详细,当然我在其中也学到了很多很多这方面的知识.但,总觉得缺点什么? 所

My way to Python - Day05 - 面向对象-思维导图

My way to Python - Day05 - 面向对象 思维导图

用思维导图建立知识的链接和结构

如果只用一种方式了解某样事物,你就不会真正了解它.了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系.通过联系,你可将想法内化于心,从各种角度看问题,直到找到适合自己的方法.这才是思考的真谛! ——马文·明斯 不要担心你以前没有接触过相关的专业知识,学习起来会很吃力! 其实,学习,是一个将新知识与已经掌握的知识相链接的过程. 思维导图和曼陀罗思维法是最好的帮助我们建立知识链接的工具. \ 思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维