1,类,函数和枚举的名称如 LikeThis,单词首 大写;
变量名形如likeThis,第一个单词首字母小写,第二个单词首字母大写;私有成员变量名形如 likeThis_;宏名称如 LIKE_THIS
2,构造函数的参数使用命名变量,而不要使用临时变量,避免可能的声明二义性
3,使用灵活的,动态分配的数据,不要使用固定大小的数组
4,避免全局数据,也就是共享数据,会导致冲突,降低性能;尽可能使用局部变量,变量的生存周期越短越好。
5,绝对不要将类的数据成员设为public,或者公开指向他们的指针或句柄而使其公开
6,每当处理需要配对的获取/释放函数调用的资源时候,都应该将资源封装在一个对象中,让对象为我们强制配对,并在析构函数中执行资源释放。shared_ptr<Port> port2=
7,绝对不要在一条语句中分配一个以上的资源,应该在自己的代码中执行显式的资源分配(比如new),而且每次都应该马上将分配的资源赋予管理对象(比如shared_ptr)。例如:shared_ptr<Widget>sp1(newWidget),sp2(new Widget);Fun(sp1,sp2)。而不是Fun(shared_ptr<Widget>(new Widget),shared_ptr<Widget>(new Widget));
8,编译时候检查错误,而不是运行时候检查,这个时候就要多用静态断言取代运行时测试
9,在需要表示符号常量或受限整数值时考虑定义enum。
10,积极使用const,常量很安全,在编译时会对其进行检查,但也避免将通过值传递的函数参数声明为const
11,尽量避免用宏定义,可以用const或enum定义易于理解的常量,用inline避免函数调用的开销
12,变量必须初始化,例如:char path[MAX_PATH]={‘\0’} 13,在可以使用&&条件判断的地方要避免使用连续嵌套的if