c++碎碎念之const以及初始化

1550阅读 0评论2021-02-24 stolennnxb
分类:C/C++

1. 对于单纯的常量,最好以const对象或者enums替换#defines
2. 对于形似函数的宏,最好改用inline函数替换#defines
3. const_cast: 移除/添加变量const属性
4. 将一些东西声明为const可以帮助编译器侦测出错误用法
5. mutable可以逃逸const成员函数
6. 当const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本可以避免代码重复,需要先将*this使用static_cast添加const,然后返回结果的时候,使用const_cast去掉const
7. 如果类中的成员变量是const或reference,就一定要在初始化列表当中初始化,不能被赋值
8. 为内置对象(POD)进行手工初始化,因为C++不保证初始化它们
9. 为免除“跨编译单元的初始化次序”问题,以函数内的static对象,替换之,返回该static对象的引用。(函数内的local static对象会在“该函数被调用期间”,“首次遇上该对象的定义”时被初始化
上一篇:c++11的碎碎念之两点小坑——remove和array的swap
下一篇:c++构造当中的一些坑