C++ 只允许将临时对象分配给 const 引用。它不允许分配临时对象来引用。
例如:
String& a = String("test"); // Error
const String& a = String("test"); // Ok
我到处谷歌搜索这个结果,我只看到以下答案
- 修改临时对象会导致无法识别的问题
- 修改临时对象是危险的
- 在某些时候,你会忘记它是一个临时变量
据说,声明后临时对象就会消失。所以你不应该修改它。
如果 C++ 如此热衷于阻止修改临时对象,那么它应该阻止读取临时对象,对吗?如果临时对象消失了,那么从那里读取内容就没有意义了,对吗?可能发生权利的情况也可能涉及读取。
那为什么它单独阻止写入并允许读取呢?
请给我一个可靠的 C++ 代码解释。
请不要通过指出一些替代方案来偏离问题。请用代码给我可靠的答案,为什么临时对象允许使用 const int & 而不允许使用 int & 。
有人说&&在那里..我的问题不同..
另一种说法是,改变不会反映。即使它是 const int & ,改变也不会反映。例如:双a;常量 int & i = a;一个++;不会影响我..
不允许引用临时变量的最初情况是针对函数参数。假设这是允许的:
void inc(double& x)
{ x += 0.1; }
int i = 0;
inc(i);
为什么不是i
改变了?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)