const引用

ivankevin posted @ 2010年9月28日 10:28 in cpp_primer with tags cpp_primer , 2342 阅读
/*我实质上是一个很懒的人。*/

P51说了const引用。

先上注解:“const引用”的意思是“指向const对象的应用”。类似地“非const引用“表示指向非const类型的引用。

int i = 42;
int &r = i;

这个当然是ok的。

const int i = 42;
const int &r = i;

当然也是ok的。

至于

const int i = 42;
int &r = i;

是不行的,编译错误。因为如果可以的话,修改r会变成修改i,而i是不可修改的。

最后

int i = 42;
const int &r = i;
i = 52; //OK
r = 52; //Error, r is read only.

这个primer没有提到,经我那破旧的g++(win下)测试,实际效果应该是i可以被修改,这时候r的值也会被修改。但尝试给别名r赋值则不行。

嗯我就写书上没有的结果好了。

/*所以我愿意思考更多,以达到事半功倍的效果。*/
ivankevin 说:
2010年9月29日 00:18

书读百遍,其义自见。
终于看懂了这个注解;
非const引用只能绑定到与该引用同类型的对象。
const引则可以绑定到(注:与自己)不同但相关的类型的对象或者绑定到右值。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter