將非常量引用綁定到不同類型的左值
在C 中,非常量左值引用(&) 不能綁定定到不同類型的左值,如範例所示下面:
int a; double &m = a; // Error: non-const lvalue reference cannot bind to an lvalue of different type
這是因為非常量引用 m嘗試綁定到賦值期間建立的臨時物件。非常量引用不能綁定到臨時變數。
但是,請考慮以下範例:
const double &m = a; // Valid
在這種情況下,常數引用 m 綁定到非常量左值,並且允許從 int 到 double 的轉換。這是因為 const 引用可以保護底層值不被修改,從而消除了將非常量引用綁定到臨時值時可能出現的資料損壞的可能性。
因此,當您嘗試綁定非 const 引用時, const 引用不同類型的左值,由於非常量引用無法綁定到臨時變量,因此會發生錯誤。
以上是為什麼非常量引用不能綁定到 C 中不同類型的左值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!