博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ Prime:const的引用
阅读量:4703 次
发布时间:2019-06-10

本文共 839 字,大约阅读时间需要 2 分钟。

  可以把引用绑定到const对象上,就像绑定到其他对象上一样,我们称之为对常量的引用。与普通引用不同的是,对常量的引用不能被用作修改它所绑定的对象:

const int ci = 1024;const int &r1 = ci;    // 正确,引用及其对应的对象都是常量r1 = 42;    // 错误,r1是对常量的引用int &r2 = ci;    // 错误,试图让一个非常量引用指向一个常量对象

 

  常量引用就是对const的引用,引用的对象是常量还是非常量可以决定其所能参与的操作,却无论如何都不会影响到引用和对象的绑定关系本身。

  

  初始化常量引用是允许用任意表达式作为初始值,只要该表达式的结果能转换成引用的类型即可。尤其,允许为一个常量引用绑定非常量的对象、字面值,甚至是一个表达式。

int i = 42;const int &r1 = i;    // 允许将const int&绑定到一个普通int对象上const int &r2 = 42;    // 正确,r2是一个常量引用const int &r3 = r1 * 2;    // 正确,r3是一个常量引用int &r4  = r1 * 2;    // 错误,r4是一个普通的非常量引用

  

对const的引用可能引用一个并非const的对象:

  常量引用仅对引用可参与的操作做出了限定,对于引用的对象本身是不是一个常量未作限定。因为对象可能是个非常量,允许通过其他途径改变它的值:

  

int i = 42;int &r1 = i;    // 引用r1绑定对象iconst int &r2 = i;    // r2也绑定对象i,但是不允许通过r2修改i的值r1 = 0;    // r1并非常量,i的值修改为0r2 = 0;    // 错误,r2是一个常量引用

 

  

转载于:https://www.cnblogs.com/vitah/p/4352560.html

你可能感兴趣的文章
asp.net 设置session失效时间
查看>>
杭电多校第四场 E Matrix from Arrays
查看>>
ReactiveCocoa操作方法-线程\时间
查看>>
oracle 分析函数
查看>>
CHD-5.3.6集群上sqoop安装
查看>>
解决无/var/log/messages 问题
查看>>
ThinkPHP5.0中Request请求对象的常用操作
查看>>
js 判断是不是空、值是否存在
查看>>
windows 启动关闭Oracle监听和服务 (转载)
查看>>
【小程序云开发入门】quickStart
查看>>
分布式一致性协议-2PC与3PC(二)
查看>>
SCP-bzoj-1079
查看>>
Python 实践项目 游戏
查看>>
AJAX--Jquery
查看>>
模拟新浪微博随便看看
查看>>
环境搭建
查看>>
解密EXL
查看>>
简易版cnlog
查看>>
erlang程序运行的几种方式
查看>>
堆heap和栈Stack(百科)
查看>>