条款1 视c++为一个语言联邦
其实看到这第一个条款就觉得,这书买的真值了,因为看完primer一知半解后感觉c++就是个规则大集合,
以c为基础,
添加了构造函数,析构函数,封装,继承,多态,虚拟函数等面向对象守则,
再以template模板嵌入规则,
其中stl为最重要的规则模板。
因此,c++高效编程守则视状况而变化,取决于你用c++的哪一部分
条款2 尽量以const,enum,inline 替换#define
对于一直使用的脚本语言的我来说,
这条款的翻译,宁可以编译器替换预处理器这个说法,理解是字面上的:在调试之前处理的无法应用于调试跟踪因此该使用编译器。
const可以定义常量和方法,加重对此方法和变量的控制。
enum可以定义一些类和对象所使用的整形常量。
inline为内联函数,一般来说,尽量使用短而小的函数定义内联函数,建议十行以内。
条款3 尽可能使用const
const告诉编译器强制约束,确保指针,函数。。的值不被改变,增加其安全性。
在const成员函数内不能赋值,但是mutable能赋值改变变量,即使在const成员函数内。
条款4 确定对象被使用前已先被初始化
确定对象呗使用前已被初始化,否则会导致程序终止。
确保:1.手工初始化内置型non-member对象,因为c++不保证初始化他们
2.使用成员初值列对付对象的所有成分
3.为免除夸编译单元之初始化次序问题,请以local static对象替换non-local static对象
条款5 了解c++默默编写并调用哪些函数
编译器可以暗自为class创建default构造函数,copy构造函数,copy assignment操作符,以及析构函数