C++实践忠告
来源:互联网 发布:2016linux运维面试题 编辑:程序博客网 时间:2024/06/03 12:50
C++忠告
并不是每一个C++语言特征都是必要的,在实际应用中养成良好的编程规范能够减少开发以及维护中的问题。
- 请特别关注程序设计技术,而不是各种语言特征。
- 将局部命名空间全部引入到全局命名空间中,不是一个好的做法,即using namespace xx不推荐直接使用
- 不要重复造轮子,充分利用已有资源,但是要去理解并且清楚是如何实现的。
- 如果标准库能够满足需求,尽量使用标准库中的算法、容器等。
- 不要认为任何情况下标准库都是最理想的。
- 变量在定义的地方进行初始化
- 确保进行安全的类型转换,不进行非安全的类型转换:浮点向整型转换或者大类型向小类型转换
- 参数的传递一般使用const T&的形式,避免局部变量的拷贝操作,其他情况使用*p
- 不要过分依赖运算符的优先级,尽量通过加括号的方式确定优先级
- 声明对象时加上std::nothrow选项,出现内存不足时会返回一个空指针
- 避免使用强制类型转换
- 尽量不使用宏,除非你必须使用
- 自己的代码尽量放在自己的命名空间下,设置方法为源码所在的绝对路径。
- 尽量不用异常,在程序中处理所有边界。
- 尽量采用初始化成员列表的方式初始化成员
- 如果类里面有指针或者引用类型,应特别注意类型的赋值,如果需要赋值则需要考虑深浅复制的问题。
- 临时对象会在创建完整表达式之后销毁,不要依赖临时对象。
- 对于不需要拷贝或者赋值的对象,尽量禁用赋值运算符和复制构造函数。
- 如果某类接受一个参数的构造函数时,应通过explicit方式显示声明,防止隐式转换
- 对于大型的C++对象应该尽量避免对象的复制,特别是临时对象的产生,尽量采用引用或者指针进行避免
- 考虑使用()作为多维数据的下标
- 一般成员函数重名的话会进行覆盖,虚函数会实现多态
- 实际程序设计时尽量隔离变化部分,抽象不变的部分。
- 尽量处理代码中的所有问题,尽量不使用异常