
Effective C++读书笔记
猪猪加大码力
What doesn't kill you makes you stronger.
展开
-
Effective C++读书笔记之条款08:别让异常逃离析构函数。
1、c++禁止析构函数吐出异常,但也不鼓励这样做。 来看实例: class Widget { public: Widget(); ~Widget() { } }; void g_doSomething() { vector<Widget> arr;//arr为临时对象,函数结束自动销毁。 } 在 g_doSomething()中,析构函数在销毁资源的过程中吐出了一个异常,没...原创 2019-12-04 21:34:37 · 220 阅读 · 0 评论 -
Effective C++读书笔记之条款04:确定在使用对象前已将它初始化。
条款4:确定在使用对象前已将它初始化。(Make sure that objects are initialized before they’re used) 1.永远在使用对象之前将它初始化。 1.1 对于内置类型,手动完成初始化。 什么叫做内置类型呢?就是在C++里面的这些基本数据类型: ① 整数 int、short和long ② 字符型 char和wchar_t ③ 布尔型 bool ④ ...原创 2019-10-28 21:16:30 · 241 阅读 · 0 评论 -
Effective C++读书笔记之条款07:为多态基类声明virtual析构函数。
条款7:为多态基类声明virtual析构函数。 1、在创建有层次的类时,往往要把基类的析构函数声明为虚函数。 这是因为在使用这些类时,往往是通过基类指针或者引用使用的(类的实例在堆上),如果是析构对象时,通过delete +指针,这时如果析构函数不是虚函数,将不会调用当前指针指向对象的析构函数。这是多态的原理。 实例如下: https://blog.youkuaiyun.com/Struggling_Jeff...原创 2019-10-28 20:58:37 · 205 阅读 · 0 评论 -
Effective C++读书笔记之条款06:若不想使用编译器自动生成的函数,就该明确拒绝。
条款6:若不想使用编译器自动生成的函数,就该明确拒绝。 1、书中采用房子对象来举例,一套房子是一个独一无二的资源,不存在一模一样的两栋房子,因此是不支持拷贝操作。 class HomeForSale { …… }; HomeForSale h1; HomeForSale h2; HomeForSale h3(h1);//默认copy构造 出错 h1=h2;//默认copy assignment 出...原创 2019-10-28 20:50:13 · 184 阅读 · 0 评论 -
Effective C++读书笔记之条款05 了解C++默默编写并调用哪些函数。
条款05 了解C++默默编写并调用哪些函数。 1、我们编写的每个类几乎都有一个或多个构造函数、一个析构函数和一个赋值运算符。他们操控类对象基本的生死行为。 2、如果自己没有声明,编译器就会为类声明一个default 构造函数,一个copy构造函数,一个copy assignment操作符和一个析构函数.所有这些函数都是 public 而且 inline(第30条)。 PS:空类(empty cla...原创 2019-10-28 20:42:06 · 203 阅读 · 0 评论