1,类型名的第一个字母大写,最后以_T结尾
2,变量和函数名首字母小写,其后每一个单词的首字母大写,其它小写。
3,全大写的函数名,和小写的函数名一样,不过是增加了错误处理而已,编译时用inline实现。
4,指针用p开头或者用Ptr结尾。
5,用前缀区分作用域:i_ (instance scope)、c_ (class scope)、g_ (global scope)、f_ (file scope)。yathing:不加下划线,表示数据类型,m_ 表示成员变量,等等......
6,全大写的前缀,表示项目名、Packet或者Library等(命名空间级别以上)。
7,用可发音的名字。
8,词汇通用、通俗、但是避免误解。
9,lhs,函数左值参数;rhs,函数右值参数。
10,a、an、any区分重名参数。
11,指针和引用的区别关键:NULL是不是合法值。
12,无符号、位操作,慎用。效率低下、兼容性问题等。
13,内置数据类型传值、非内置类型传引用(首选)或指针。
14,若不得不使用参数不确定的函数,用<stdarg.h>提供的方法[1]。
15,若必须返回值,不要强行返回引用[2]。
16,禁止成员函数返回成员的引用或指针,只读的例外[3]。
17,显示禁止编译器自动生成不需要的函数[4]。
18,绝不要重新定义继承来的非虚函数。
19,绝不要重新定义缺省参数值。
20,多重继承的基类析构函数都应该是虚函数。
21,纯虚函数:只继承接口并且派生类必须提供实现。一般虚函数:继承接口并提供缺省实现。
22,类型差异不影响行为时,用模板,否则用继承。
23,谁申请谁释放[5]。
24,关于虚友元函数[6]。
25,关于虚构造函数[7]。
26,不要用构造函数初始