為什麼 C 中的臨時物件只允許使用 const 引用?
在 C 中,臨時物件的賦值只允許給 const 引用,同時禁止非常量引用。這種限制引發了許多問題,特別是關於修改臨時物件的可能性的問題。
眾所周知,臨時物件是短暫的,一旦包含其建立的語句結束,它們就會消失。這引起了一個合理的擔憂:為什麼在允許讀取的同時限制修改?
要理解這種差異,請考慮涉及函數參數的假設情況:
void inc(double& x) { x += 0.1; } int i = 0; inc(i);
如果非常量引用允許臨時參數,則該程式碼的行為將是特殊的。儘管透過引用傳遞 int 參數,但呼叫 inc 後 i 的值保持不變。這會導致意外和不合邏輯的結果。
但是,允許 const 引用可以保證傳遞給函數參數的臨時物件不會被意外修改。這可以防止出現意外行為的可能性,並確保維護使用 const 引用的意圖。
以上是為什麼我不能將臨時物件傳遞給 C 中的非常量參考?的詳細內容。更多資訊請關注PHP中文網其他相關文章!