![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effective C++
布丁的自我修养
这个作者很懒,什么都没留下…
展开
-
Effective C++ 第一章:让自己习惯C++
序言Effective C++ 的系列博文是本人学习了《Effective C++》(第三版)之后的学习整理,大部分内容来源于原书。为了更方便地回顾和复习,所以将一些重要的知识点提取出来。分享给大家一起进步学习原创 2019-01-24 13:03:13 · 202 阅读 · 1 评论 -
Effective C++ 第二章:构造/析构/赋值运算
第二章:构造/析构/赋值运算条款5:了解C++默默编写并调用哪些函数编译器会为一个类添加:一个copy构造函数、一个copy assignment操作符和一个析构函数、一个默认构造函数。这些函数都是public和inline的class Empty{};相当于class Empty(){public: Empty() Empty(const Empty& ...原创 2019-01-24 13:03:48 · 297 阅读 · 1 评论 -
Effective C++ 第三章:资源管理
第三章:资源管理条款13:以对象管理资源把资源放进对象内,我们便可以依赖C++的“析构函数自动调用机制”确保资源被释放。void f(){ std::auto_ptr<Investment> pInv(createInvestment()); //调用factory函数,经由auto_ptr的析构函数自动删除pInv}获得资源后立刻放进管理对象每一笔资源都...原创 2019-01-24 13:04:28 · 234 阅读 · 1 评论 -
Effective C++ 第四章:设计与声明
第四章:设计与声明条款18:让接口容易被正确使用,不易被误用tr1::shared_ptr允许当智能指针被建立起来时,指定一个资源释放函数(所谓的删除器deleter)绑定于智能指针身上。(auto_ptr)则不行。//创建一个null shared_ptr<Investment> 并携带一个自定的删除器。std::tr1::shared_ptr<Investment...原创 2019-01-24 13:08:57 · 199 阅读 · 1 评论 -
Effective C++ 第五章:实现
第五章:实现条款26:尽可能延后变量定义式的出现时间string encryptPassword(const string& password){ ... string encrypted; //调用默认构造函数default-construct encrypted = password; //赋值 ...}//更优版本string encryptPassword(...原创 2019-01-24 13:09:33 · 194 阅读 · 1 评论 -
Effective C++ 第六章:继承与面向对象设计
第六章:继承与面向对象设计条款32:确定你的public继承塑模出is-a关系条款33:避免遮掩继承而来的名称基类函数被子类函数所覆盖:class Base{private: int x;public: virtual void f1() = 0; virtual void f1(int); virtual void f2(); void f3(); void f3(d...原创 2019-01-24 13:10:13 · 174 阅读 · 0 评论 -
Effective C++ 第七章:模板与泛型编程
第七章:模板与泛型编程条款41:了解隐式接口和编译期多态编译期的多态和运行期的多态的区别:哪一个重载函数该被调用:发生在编译期哪一个virtual函数该被绑定:发生在运行期显式接口与隐式接口的区别:显式接口由函数的签名式(函数名称、参数类型、返回类型)构成。如:class Widget{public: Widget(); virtual ~Widget(); ...原创 2019-01-24 13:10:51 · 224 阅读 · 1 评论 -
Effective C++ 第八章:定制new和delete
第八章:定制new和delete条款49:了解new-handler的行为set_new_handler的参数是一个指针,指向operator new无法分配足够内存时该被调用的函数。返回值也是个指针,指向set_new_handler被调用前正在执行的那个new-handler函数。namespace std{ typedef void (*new_handler)(); new_...原创 2019-01-24 13:11:29 · 235 阅读 · 0 评论 -
Effective C++ 第九章:杂项讨论
第九章:杂项讨论条款53:不要轻易忽视编译器的警告条款54:让自己熟悉包括TR1在内的标准程序库TR1组件实例:智能指针:tr1::shared_ptrtr1::function:此物可以表示任何callable entity(可调用物,也就是任何函数或函数对象)void registerCallback(string func(int)); //参数类型是函数,该函数...原创 2019-01-24 13:12:05 · 180 阅读 · 1 评论