const限定符
1.const对象一定要初始化(手工给予初值),初始值可以是任意复杂的表达式;
const int i = get_max(); //运行时初始化
const int j = 4; //编译时初始化
2.const对象初始化第二种方法,利用一个对象去初始化,则他们是不是const都无关要紧;
int i = 2;
const int ti = i; //i的值被拷贝给了ci
int k = ti; //ci的值被拷贝给了k
3.默认状态下,const对象仅在文件内有效。当多个文件中出现了同名的const变量时,其实就等同于在不同文件中分别定义了独立的变量。
但是某些时候const变量的初始值不是一个常量表达式,但又确实有必要在文件间共享。这种情况下我们想让这类const对象像其他(非常量)对象一样工作,即在一个文件中定义const,而在其他多个文件中声明并使用它。解决方法是,对于const变量不管是声明还是定义都添加extern关键字(普通变量只是声明前加extern),这样就不用在每个文中分别定义独立的const变量了。
//file_0.cc定义并初始化了一个常量,该常量能被其他文件访问
extern const int bufSize = fcn();
//file_0.h头文件
extern const int bufSize;//与file_0.cc中定义的bufSize是同一个
file_0.h头文件中的声明也由extern限定,其作用时是指明bufSize并非本文件所独有,它的定义将在其他地方出现。
note:若想在多个文件之间共享const对象,必须在变量的定义和声明之前添加extern关键字。
const的引用
1.把引用绑定在const对象上,称为对常量的引用(reference to const)。与普通引用不同的是,对常量的引用不能被用作修改它所绑定的对象,只有常量引用才能指向常量对象:
const int ti = 512; //如果去掉con