为什么 C 中的临时对象只允许使用 const 引用?
在 C 中,临时对象的赋值只允许给 const 引用,同时禁止非常量引用。这种限制引发了许多问题,特别是关于修改临时对象的可能性的问题。
众所周知,临时对象是短暂的,一旦包含其创建的语句结束,它们就会消失。这引起了一个合理的担忧:为什么在允许读取的同时限制修改?
要理解这种差异,请考虑涉及函数参数的假设情况:
void inc(double& x) { x += 0.1; } int i = 0; inc(i);
如果非常量引用允许临时参数,该代码的行为将是特殊的。尽管通过引用传递 int 参数,但调用 inc 后 i 的值保持不变。这会导致意外和不合逻辑的结果。
但是,允许 const 引用可以保证传递给函数参数的临时对象不会被意外修改。这可以防止出现意外行为的可能性,并确保维护使用 const 引用的意图。
以上是为什么我不能将临时对象传递给 C 中的非常量引用?的详细内容。更多信息请关注PHP中文网其他相关文章!