小编use*_*471的帖子

为什么非const引用临时对象?

C++只允许将临时对象分配给const引用.它不允许分配临时对象来引用.

例如:

String& a = String("test");         // Error
const String& a = String("test");   // Ok
Run Code Online (Sandbox Code Playgroud)

无论我到哪里谷歌这个结果,我只看到以下答案

  1. 修改临时对象会导致无法识别的问题
  2. 修改临时对象很危险
  3. 在某些时候,你会忘记它是一个临时变量

有人说,临时对象在声明后消失了.所以你不应该修改它.

如果C++,如此热衷于阻止修改临时对象,它应该阻止读取临时对象吗?如果临时对象消失了,那么从那里读取内容是没有意义的吗?权利可能发生的可能情况也可能涉及阅读.

那为什么它一直阻止写入并允许读取?

请给我一个可靠的c ++代码说明.

请不要通过指出一些替代方案来偏离问题.请给我一个可靠的答案代码,为什么const int&被允许,而int&不允许用于临时对象.

一个说&&在那里..我的问题不同..另一个说,改变不会反映..改变也不会反映即使它也是const int&.例如:双倍; Const int&i = a; 一个++; 不会影响我..

c++ temporary-objects

45
推荐指数
3
解决办法
1万
查看次数

标签 统计

c++ ×1

temporary-objects ×1