const 使用一二

Primer C++ 练习题4.20:

int i = -1;

const int ic = i;

对于这个,一开始认为,ic 作为const 类型变量,定义时应该给其赋常值,而此处给的是变量i,因此编译时会报错,但是经过验证,这个理解是错误的。

为此总结const的一些点:

1)const型变量在定义时必须初始化,但不一定非要用常量来初始化(如上);

2)const对象默认为文件的局部变量,通过指定const变量为extern,就可以在整个程序中访问const对象:

//file_1.cc

//define and initialize a const that is accessible to other files

extern const int bufSize = fcn();

//file_2.cc

extern const int bufSize; //uses bufSize defined in file_1

for(int index = 0; index != bufSize; ++index)

 // ..

3)const引用可以绑定到不同但相关的类型的对象或绑定到右值,但非const引用只能绑定到同类型的对象。

  const   int &ri = 0; //绑定到右值

 // 绑定到不同但相关类型

  double i;

  cosnt int &ref_i = i;

 

posted @ 2016-01-10 22:08  软跋涉者  阅读(116)  评论(0编辑  收藏  举报