C++允许将临时对象赋值给const引用,但不允许将临时对象赋值给引用。
例如:
无论我在哪里搜索这个结果,我只看到以下答案:
1. 修改临时对象会导致无法识别的问题 2. 修改临时对象是危险的 3. 在某个时间点,你会忘记它是一个临时变量
据说,临时对象在语句之后消失。所以你不应该修改它。
如果C++如此热衷于阻止修改临时对象,那它应该阻止读取临时对象,对吗?如果临时对象消失了,那么从那里读取内容就没有意义了,对吗?可能发生正确的情况也可能涉及到读取。
那么为什么它只阻止写入而允许读取呢?
请给我一个扎实的C++代码解释。
请不要偏离问题,指出一些替代方案。请给我一个扎实的答案,用代码解释为什么对于临时对象,允许const int &,而不允许int &。
有人说有&&..我的问题不同.. 还有人说,改变不会反映出来..即使是const int &,改变也不会影响i..例如:double a; const int & i = a; a++; 不会影响i..
例如:
String& a = String("test"); // Error
const String& a = String("test"); // Ok
无论我在哪里搜索这个结果,我只看到以下答案:
1. 修改临时对象会导致无法识别的问题 2. 修改临时对象是危险的 3. 在某个时间点,你会忘记它是一个临时变量
据说,临时对象在语句之后消失。所以你不应该修改它。
如果C++如此热衷于阻止修改临时对象,那它应该阻止读取临时对象,对吗?如果临时对象消失了,那么从那里读取内容就没有意义了,对吗?可能发生正确的情况也可能涉及到读取。
那么为什么它只阻止写入而允许读取呢?
请给我一个扎实的C++代码解释。
请不要偏离问题,指出一些替代方案。请给我一个扎实的答案,用代码解释为什么对于临时对象,允许const int &,而不允许int &。
有人说有&&..我的问题不同.. 还有人说,改变不会反映出来..即使是const int &,改变也不会影响i..例如:double a; const int & i = a; a++; 不会影响i..
C++
дјҡ延й•ҝз»‘е®ҡеҲ°ж ҲдёҠзҡ„constеј•з”Ё
зҡ„дёҙж—¶еҸҳйҮҸзҡ„з”ҹе‘Ҫе‘ЁжңҹгҖӮиҜ·еҸӮи§ҒжӯӨеӨ„зҡ„жңҖдҪізӯ”жЎҲпјҡhttps://dev59.com/questions/5nE85IYBdhLWcg3wbS1h - Chad