C++ 只允许将临时对象分配给 const 引用。它不允许分配临时对象来引用。
例如:
String& a = String("test"); // Error
const String& a = String("test"); // Ok
我到处搜索这个结果,我只看到以下答案
- 修改临时对象会导致无法识别的问题
- 修改临时对象是危险的
- 在某些时候,你会忘记它是一个临时变量
据说,声明后临时对象消失了。所以你不应该修改它。
如果 C++ 如此热衷于阻止修改临时对象,它应该阻止读取临时对象吧?如果临时对象消失了,那么从那里读取内容没有意义吗?可能发生权利的情况也可能涉及读取。
那为什么它一直阻止单独写入并允许读取?
请给我一个可靠的 C++ 代码解释。
请不要通过指出一些替代方案来偏离问题。请用代码给我一个可靠的答案,为什么允许 const int & 并且不允许 int & 用于临时对象。
一个说 && 在那里.. 我的问题不同.. 另一个说,改变不会反映.. 即使它是 const int & 也不会反映。例如:双a;常量 int & i = a; 一个++;不会影响我。。