1.const
1.1 尽量用const代替#define
注意代码如下:
#define MAX 1024
const int max = 1024
在预处理阶段,所有的MAX已经被替换为了1024,于是MAX并没有将其加入到符号表中,但我们使用了这个常量获得一个编译错误信息时,会带来一些困惑,因为错误信息只会显示1024,而不是MAX,如果MAX被封装到一个静态库中,该问题解决起来就更为复杂了。
1.2 常量引用
常量引用主要用在函数的形参,尤其是类的拷贝函数,将函数的形参定义为常量的好处有:
(1)引用不产生新的变量,减少形参与实参传递的开销
(2)引用可能导致实参随形参改变而改变,而将其定义为常量引用可以消除这种副作用。
2.#define
1.宏常量没有数据类型
2.宏常量不重视作用域,从#define开始直到#undef
3.宏常量没有命名空间