为什么禁止对临时对象的非常量引用
C 禁止将临时对象分配给非常量引用。此限制源于临时对象在创建它们的语句之后消失的事实。允许对临时对象的非常量引用可能会导致未定义的行为。
考虑以下代码:
String& a = String("test"); // Error
此代码尝试将临时 String 对象分配给非常量引用。但是,这是不允许的,因为 a 不是 const 引用,并且无法修改临时对象。
此限制的一些常见原因包括:
C 允许从临时对象中读取,但不能写入它们,因为读取会影响它们不改变对象的状态。然而,写入临时对象可能会产生意想不到的后果,因为该对象可能会在写入操作完成之前被销毁。
因此,为了防止这些潜在问题,C 限制对临时对象的非常量引用,同时仍然出于安全阅读的目的,允许 const 引用。此限制有助于确保程序正确性并防止修改临时对象可能导致的未定义行为。
以上是为什么不能将临时对象分配给 C 中的非常量引用?的详细内容。更多信息请关注PHP中文网其他相关文章!