社区
C++ 语言
帖子详情
非常量引用的初始值必须为左值可以理解,为什么加了个const之后的初始值就可以是右值了
qzk1993
2016-04-28 09:16:15
代码如下
const int& a = 101;
int& b = 101;
a可以赋值,b就不行了
就大神解答
...全文
446
4
打赏
收藏
非常量引用的初始值必须为左值可以理解,为什么加了个const之后的初始值就可以是右值了
代码如下 const int& a = 101; int& b = 101; a可以赋值,b就不行了 就大神解答
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
米拉小胖子
2016-04-29
打赏
举报
回复
cannot convert from 'const int' to 'int &'
sdghchj
2016-04-29
打赏
举报
回复
死规定呗,要不然假如void fun(int& a)函数,你必须声明一个临时变量来传参吗?我直接传个0不行么?
encoderlee
版主
2016-04-28
打赏
举报
回复
因为const引用无法修改它的值,所以可以是右值
ri_aje
2016-04-28
打赏
举报
回复
规定。常引用可以绑定到右值上面。右值的主要问题是没注意修改以后的值会丢掉,常引用本来也不能修改,所以没有这个问题。
C++系列第2:C++2.0(11+14+17+20)详解及多线程实战
90 5.5.1 RAII 与
引用
计数 90 5.5.2 std::shared_ptr 90 5.5.3 std::unique_ptr 91 5.5.4 std::weak_ptr 91 第6章 C++2.0多线程原理与实战 93 什么是并发 93 并发的方式 93 为什么使用并发 95 线程简介 96 创建线程...
C++中“非常
量
引用
的
初始值
必须
是
左值
”的处理方法
1
左值
和
右值
在C++中,
左值
可以出现在赋值语句的左边和右边;
右值
只能出现在赋值语句的右边,不能出现在赋值语句的左边。变
量
是
左值
,常
量
是
右值
。2
引用
引用
(reference)为对象起了另外一个名字,
引用
类型
引用
(refers to)另外一种类型。通过在变
量
名前添
加
“&”符号来定义。
引用
具体的使用方法请参考《C++的
引用
与重载函数》。3 非常
量
引用
的
初始值
必须
是
左值
3.1 产生原因自定义函...
C++ 非常
量
引用
的
初始值
必须
是
左值
C++ 非常
量
引用
的
初始值
必须
是
左值
左值
和
右值
: 在C++中,
左值
可以出现在赋值语句的左边和右边;
右值
只能出现在赋值语句的右边,不能出现在赋值语句的左边。变
量
是
左值
,常
量
是
右值
。 有如下的代码: 错误的原因: 按照规则解释:L是常
量
,既可以放在等号的右边也可以放在等号的左边,属于
右值
。&L是L的地址,地址只能放在等号的左边,是不可以被改变的,属于
左值
。而函数中对应的形参是非常
量
引用
,所以无法赋值。当我们把形参变成常
量
引用
后就是正确的 根本原因是什么? 只允许将常
量
传递给常
量
引用
,如
“非常
量
引用
的
初始值
必须
为
左值
“及“匿名对象“
“非常
量
引用
的
初始值
必须
为
左值
"及"匿名对象” 前言 在练习的时候用
引用
接收匿名对象引发”非常
量
引用
的
初始值
必须
为
左值
“错误 简单还原如下 #include<iostream> using namespace std; class Maker { public: Maker() { cout << "Maker的构造" << endl; } Maker(
const
Maker& m) { cout << "Maker的拷贝构造" &
非常
量
引用
的
初始值
必须
是
左值
问题:void increment(double& x) { x+=1.0; } int n=5; increment(n);上述代码错误“非常
量
引用
的
初始值
必须
是
左值
”因为 int 和double 类型不一致,首先会执行隐式类型转换,产生一个临时变
量
。
const
double tmp=(double)n这样传给函数的就是一个常
量
。用一个常
量
(
右值
)对非常
量
类型
引用
赋值,会出错。修改1:vo
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章