Intro
有时候我们希望定义这样一种变量,它的值不能被改变。为了满足这一要求,可以用关键字const对变量的类型加以限定。
因为const对象一旦创建后其值就不能再改变,所以const对象必须初始化。
默认状态下,const对象仅在文件内有效
某些时候有这样一种const变量,它的初始值不是一个常量表达式,但又确实有必要在文件间共享。解决的办法是,对于const变量不管是声明还是定义都添加extern关键字,这样只需定义一次就可以了:
1 | extern const int bufSize = fcn(); |
如果想在多个文件之间共享const对象,必须在变量的定义之前添加extern关键字。
const的引用
称之为对常量的引用(reference to const)。
引用的类型必须与其引用对象的类型一致,但是有两个例外。
第一种例外情况就是在初始化常量引用的时允许用任意表达式作为初始值,只要该表达式的结果能转换成应用的类型即可。尤其,允许为一个常量引用绑定非常量的对象
对const的引用可能引用一个并非const的对象