博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. 让自己习惯C++

Posted on 2006-12-01 00:06  空气  阅读(156)  评论(0编辑  收藏  举报

条款01: C++为一个语言联邦:

 

包含四个部分

    C
    OOC++
C with Classes.
    Template C++.
即泛型编程
    STL

C++高效编程守则视状况而变化,取决于你使用C++的哪一部分.

 

 

 

条款02: 尽量以 const, enum, inline 替换 #define

 

即以编译器换预处理.

 

对于单纯常量,最好以const对象或enums替换#define

对于形似函数的宏,最好用inline函数来替换,必要时应该使用 template

 

 

 

条款03: 尽可能使用 const

 

将某些东西声明为const可帮助编译器侦测出错误用法. const可被施加于任何作用域内的对象,函数参数,函数返回值,成员函数本体.

 

STL const_iterator 不可改变他所指向的值,可以改变指针自身.

Const std::vector<int>::iterator 则相反

 

令函数返回一个常量值,往往可以降低因客户错误而造成的意外.

 

两个成员函数如果只是常量性不同(即一个有const,一个没有const), 可以被重载.

 

Mutable关键字可以释放掉non-static 成员变量的const约束

 

constnon-const成员函数有着实质等价的实现时,non-const版本调用const版本可避免代码重复

 

 

 

条款04: 确定对象被使用前已先被初始化

 

对内置型对象进行手工初始化.

 

对于内置类型以为的东西,确保每一个构造函数都将对象的每一个成员初始化.并且应该使用初始化列表而不是在构造函数本体内使用赋值操作.

 

对于多个编译单元的 non-local static 对象,应以 local static 对象替换 non-local static 对象