EffectiveC++
文章平均质量分 57
Wendell_0
这个作者很懒,什么都没留下…
展开
-
条款05:了解C++默默编写并调用了哪些函数
条款05:了解C++默默编写并调用了哪些函数@(EffectiveCpp)如果你自己没声明,编译器就会为它声明(编译器版本的)一个copy构造函数,一个copy assignment操作符和一个析构函数。如果没有声明任何构造函数,编译器也会声明一个default构造函数。因此:class Empty{};等同于:class Empty{public: Empty(){...}//default构造函数 Empty(const Empty& rhs){...}//c原创 2021-10-29 17:36:03 · 141 阅读 · 0 评论 -
条款30 透彻了解`inline`的里里外外
20211009 条款30 透彻了解inline的里里外外1 一开始不要设置inline,或将inline的使用范围限制在极其简短又十分平淡无奇的函数身上。inline函数无法随程序库的升级而升级比如 f是程序库内的一个inline函数,客户将“f函数本体”编进其程序中,一旦程序库设计者决定改变f,所有用到f的客户端程序都必须重新编译。然而如果f是non-inline函数,一旦它有任何修改,客户端只需重新连接就好,远比重新编译的负担少很多。如果程序库采取动态连接,升级版函数甚至可以不知不觉地被应原创 2021-10-09 14:38:36 · 97 阅读 · 0 评论 -
条款04:确定对象在使用前已被初始化
#条款04:确定对象在使用前已被初始化如有问题,欢迎交流指正永远在使用对象之前先将它初始化,特别是内置类型。构造函数的初始化任务使用member initialization listmember\,initialization\, listmemberinitializationlist替换函数体中的赋值动作。C++规定,对象的成员变量的初始化动作发生在进入构造函数函数体之前。规定总是在初值列中给出所有成员变量,以免还得记住哪些成员变量无需初值。如果类中存在多个构造函数,为避免初值列中原创 2021-08-28 09:46:29 · 99 阅读 · 0 评论 -
条款03:尽可能使用const
条款03:尽可能使用const@(EffectiveCpp)“只要某个值保持不变是事实,你就该说出来,因为说出来可以获得编译器的帮助,确保这条约不会被违反” ————《Effective C++》以const修饰变量还是很简单的,所以这一条款将大量篇幅用在了讨论const在函数声明中的应用,特别是const member func的内容。文章目录条款03:尽可能使用`const`1,将返回值声明为`const`2,将参数声明为`const`3,`const`成员函数1,将返原创 2020-12-21 21:42:11 · 112 阅读 · 0 评论 -
条款02:尽量以const,enum,inline替代#define
条款02:尽量以const,enum,inline替代#define@(EffectiveCpp) 新建一个Global.h文件,将本来通过#define定义的变量,用const或enum来定义;将通过#define定义的宏,用模板inline来代替。并将该Global.h包含到所有实现文件中,以模拟#define无视作用域的特点。文章目录条款02:尽量以`const`,`enum`,`inline`替代`#define`1,`#define`的特点2,以`const`,`enu原创 2020-12-21 21:41:26 · 107 阅读 · 0 评论