
Effective C++
文章平均质量分 71
Effective C++相关条款及解释
sunximei1
这个作者很懒,什么都没留下…
展开
-
第四部分-设计与声明
条款22:将成员变量声明为private。 条款23:以non-member、non-friend替换member函数 考虑下例: class WebBrowser{ public: ... void clearCache(); void clearHistory(); void removeCookies(); }; 如果想定义某个操作调用上述三个函数,可以另外定义一个成员函数: public: ... void clearEverything();//依次调用上述三个函数; 另一个做法是原创 2021-10-01 16:20:23 · 114 阅读 · 0 评论 -
第三部分-资源管理
条款13:原创 2021-09-30 21:04:51 · 87 阅读 · 0 评论 -
第二部分-构造/析构/赋值运算
条款05: 编译器可为class创建默认的构造函数、析构函数、拷贝构造函数、拷贝赋值运算符。 条款06: 拒绝编译器自动生成的函数做法。 例如不希望使用class的默认拷贝函数和默认拷贝赋值运算符,有两种做法: 1.将函数声明为private。 此时对象无法调用此函数(编译期就报错)。 但是此方法不是绝对安全,因为成员函数和友元函数仍然可以调用,此时连接器会报错。为了将连接期错误转移到编译期(更早侦测出错误),使用方法2. 2.定义uncopyable的base class class Uncopyable原创 2021-09-30 19:51:44 · 96 阅读 · 0 评论 -
第一部分-习惯C++
条款02:尽量以const,enum,inline替换#define 可以理解为用“编译器”替换“预处理器”,因为#define不被视为语言的一部分。 #define 实现的是替换 一、 #define ASPECT_RATIO 1.653 可能在编译器开始处理源码前,ASPECT_RATIO就被替换成1.653了,所以记号名称ASPECT_RATIO没有进入记号表(symbol table)内。当使用此常量出现编译错误时,错误信息也许只会提到1.653而不是ASPECT_RATIO,为调试带来了困难。 解原创 2021-09-30 16:56:05 · 99 阅读 · 0 评论