字母、数字、下划线构成,不同单词用下划线隔开。
小驼峰命名法。
字母、数字、下划线构成,不同单词用下划线隔开,但是尽量只使用一个单词。
大驼峰命名法,不包含下划线。
小驼峰命名法。
需要增加前缀 g_ 。
需要增加前缀 s_ ,若其同时也是全局变量,则同全局变量的命名方式。
需要增加前缀 m_ 。
需要增加前缀 s_ 。
全大写字母,不同单词用下划线隔开。
全大写字母,不同单词用下划线隔开。
大驼峰命名法,命名时带上 class 类型,枚举值全小写字母。
原因:避免和宏定义发生冲突
尽量使用 /* */
进行注释,避免使用 //
。
宏/枚举/变量/接口的声明和定义的位置遵循就近原则,尽量避免跨文件。
当定义的类型只是数据的集合且内部无复杂的处理逻辑时选择用 struct,反之如果更注重行为的封装则选择class 。
原因:struct存在于栈上,用完即销毁。
注意:由于栈有容量限制,避免在struct中存放超大量的值类型。
当模块只是一些信息的集合且无复杂内部逻辑可以使用.hpp,反之使用多文件方式。
原因:模块逻辑复杂时,会经常变动,如果引用的外部模块多而使用.hpp时,编译时间会变长。
把构造函数声明为私有。
原因:基于单例的定义,不允许类型不受控制的实例化。