一:头文件不许使用using namespace ...,可以在源文件中使用。
原因:主要原因就是防止名字重复(即自定义变量名和std中名字重复),因为头文件会被很多地方使用,你不知道这个using能覆盖多大范围。
二:类成员变量以m_开头
三:多层循环时候,大循环放里面,小循环放外面。
原因:一般CPU使用到分支预测技术,减少指令跳转的时候重新获取新指令。但具体项目中,因为数据存储结构或者其他原因,也有可能导致大循环放在外面效率比较高。一般采用大循环放里面,小循环放外面。
四:Boost运用场景
代码中尽量少用boost库,使用boost库会增加编译时间。如果不在于编译时间,可以使用。有些公司使用C++11,无法使用C++11以上的特性,新特性是为了提高代码的可读性和效率。很多的新特性都是从boost库中提取的。只有在功能缺失的情况下,才考虑使用boost库的功能。
五:模板的运用场景
考虑编译时间就尽量少用模板,模板会极大的提升编译时长,模板不要滥用就好了,不要为了炫技去用。
六:类中的指针成员
- 当类里面需要定义指针类型的成员变量的时候,不要使用裸指针,而使用智能指针——unique_ptr, shared_ptr等。
- 优先使用C++STL里面的容器,因为这些容器已经定义了正确的移动语义。
以MyString为例子,如果它的成员变量m_data被定义为unique_ptr<char[]>,那么我们就不用去手动实现移动构造函数以及移动赋值函数了。把这些工作交给编译器就可以了。