《Effective C++》读书笔记
文章平均质量分 77
有人说C++程序员可以分为两类,读过《Effective C++》的和没读过的。
__Lemon__
这个作者很懒,什么都没留下…
展开
-
《Effective C++》读后感
几天前,我曾在微信朋友圈中发了一条消息:和大牛之间的差距就是这一个书架。图片来自于微信公众号“二爷鉴书”的分享。我时常纠结于自己的技术为什么进步的这么慢,大概就是书读的太少、思考的太少。《Effective C++》是各读书圈中力鉴的学习C++的必读书籍之一,在浏览了几小节之后,我决定将这本书精读一遍。为了不让自己半途而废,我结合自己的情况调整了读书章节顺序:6->4-原创 2016-06-27 12:13:11 · 11700 阅读 · 1 评论 -
<<Effective C++>>读书笔记1: 让自己习惯C++
每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Item 1: 将 C++ 视为语言联合体1. 这一小节,我在网上找的2个图就能说明一切。 Item 2 用 const, enum 和 inline 取代 #define1. 对于#define SOMETH原创 2016-05-20 15:59:46 · 821 阅读 · 0 评论 -
<<Effective C++>>读书笔记2: 构造/析构/赋值函数
每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Item 5 了解 C++ 为你偷偷地加上和调用了什么函数1. 一个空类,如果不声明一个拷贝构造函数,一个拷贝赋值运算符和一个析构函数,编译器就会为这些东西声明一个它自己的版本。此外,如果没有声明构造函数,编译器就会为你声明一个缺省构造函数。所有这些函数都被声明为 p原创 2016-05-24 10:08:46 · 734 阅读 · 0 评论 -
<<Effective C++>>读书笔记3: 资源管理
每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Item 13 使用对象管理资源1. 当一个 auto_ptr 被销毁时,会自动删除它所指向的东西,所以不要让超过一个的 auto_ptr 指向同一个对象。如果发生了这种事情,那个对象就会被删除超过一次,而且会让你的程序进入未定义行为。为了防止这个问题,aut原创 2016-05-30 15:55:12 · 744 阅读 · 0 评论 -
<<Effective C++>>读书笔记4: 设计与声明
每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Item 18 使接口易于正确使用1. function接口,class接口,template接口......每一种接口都是客户(调用者)与你的代码互动的手段。2. 防止可能的客户(调用)错误的另一个方法是:限制类型内什么事可以做什么事不能做;施加原创 2016-05-10 10:37:40 · 1053 阅读 · 0 评论 -
<<Effective C++>>读书笔记5: 实现
每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Item 26 只要有可能就推迟变量定义1. 不仅应该推迟一个变量的定义直到你不得不用它之前的最后一刻,而且应该试图推迟它的定义直到你得到了它的初始化参数。通过这样的做法,你可以避免构造和析构无用对象,而且还可以避免不必要的缺省构造。更进一步,通过在它们的含义原创 2016-05-17 13:24:51 · 629 阅读 · 0 评论 -
<<Effective C++>> 读书笔记6: 继承与面向对象设计
每一个Iterm都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Iterm 32 确保public继承模拟出is-a关系1. 使用C++进行面向对象编程时唯一最重要的准则就是:public继承意味着”is-a”, 适用于基类的每一件事也适用于派生类;要让这个规则刻骨铭心。2. 通过“编译器”(在编译时)阻止企鹅飞翔企原创 2016-05-05 16:21:57 · 756 阅读 · 0 评论 -
<<Effective C++>>读书笔记7: 模板与泛型编程
每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Item 41: 理解隐式接口和编译期多态1. 显式接口: 它在源代码中显式可见; 显式和隐式接口之间的区别是与 template有关的新内容。 [隐式接口:模板中的接口,模板类型的不确定导致对象的方法、数据是不确定的;如果没有调用关系,即使没有相应的原创 2016-06-24 09:49:11 · 799 阅读 · 0 评论 -
<<Effective C++>>读书笔记8: 定制new和delete
每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Item 49 了解 new-handler 的行为1. 声明的结尾处的 "throw()" 是一个异常规范,它是说这个函数不会抛出任何异常。2. 当 Widget 从 NewHandlerSupport 继承时,它其实是在说:我是 Widget,而我要从原创 2016-06-14 08:56:18 · 670 阅读 · 0 评论 -
<<Effective C++>>读书笔记9: 杂项讨论
每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。 Item 53 不要轻易忽略编译器警告1. 编译器警告,往往和它们“看起来”的意义十分不同!在你打发某个警告信息之前,请确定你了解它意图输出的精确意义。 [本小节中的示例:这个编译器警告试图告诉你申明于B中的f并未在D中被重复申明,而是被整个遮掩了;这里原创 2016-06-27 09:46:48 · 880 阅读 · 0 评论