![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Effective C++
文章平均质量分 87
CodingStart
Sometimes there is no next time, no time-outs, no second chances; sometimes it's now or never.
展开
-
《Effective Cpp》Item 2: 用 consts, enums 和 inlines 取代 #defines
理解 用编译器取代预处理器 const 取代 define define 编译代码时,在预处理阶段进行宏替换,直接进行内容替换,编译器不会将定义的宏添加到符号表。所以如果有编译错误时,不会提示宏错误而是提示宏的具体内容。 举例: #define ASPECT_RATIO 1.653 此处,编译的时候,ASPECT_RATIO 不会添加到符号表,而是在代码的每一处都会有一个 1.653,如果报错,那么也会有多处报错,提示是1.653这块出了问题,而不是ASPECT_RATIO 这里出了问题。同样在debug原创 2021-01-08 20:13:51 · 181 阅读 · 1 评论 -
《Effective Cpp》Item 20 用 pass-by-reference-to-const(传引用给 const)取代 pass-by-value(传值)
来源: https://www.ctolib.com/docs//sfile/effective-cpp/22.html 对于类型传参,尤其是面向对象特征的语言,有这样几个特征需要注意: 1、子类对象 has a 父类对象(如果接收参数为父类,实参为子类,会存在子类对象部分信息丢失); 2、自定义对象(Class/Struct)的传值会调用拷贝构造/构造函数; 对于自定义类型建议传引用 传引用可避免创建很多临时对象,减少不必要的开销(参考注意事项2); 传引用方式避免切断问题(参考注意事项1); 注意:传引原创 2020-12-10 19:51:47 · 103 阅读 · 0 评论 -
《Effective Cpp》Item1:将C++视为多种子语言的联合体
来源:https://www.ctolib.com/docs//sfile/effective-cpp/3.html 下面记录我的理解: CPP = 【C】 + 【Object-Oriented CPP】 + 【Templete 】+【STL】 【C】 c是cpp最基础的根源,提供给cpp语言最基础的特性:模块,语句,预处理,内建类型,数组,指针等。 cpp是对c的延续与扩充,强化了c的一部分特性,使其能完成一些高级的解决问题的办法。 【Object-Oriented CPP】面向对象设计 面向对象设计是C原创 2020-12-10 19:15:58 · 202 阅读 · 2 评论