[英]C++ trying to reassign a reference to instance object
試圖了解如何在 C++ 中阻止引用的重新分配。 我知道在重新分配 C++ 引用變量中,引用本身不能被重新分配,但是 refree 的值正在改變。 但我想了解這對於實例對象是如何工作的
對於下面的代碼
class A{};
A aobj;
A& aref = aobj;
A bobj;
aref = bobj;
想了解以上是否合法以及這里發生了什么。
如果它合法,那么我無法理解它是如何工作的。 我們是否只是在更改變量“aobj”所持有的值? 然后與'aref'相同,現在指的是對象'bobj'
如果它是非法的,它是否被視為試圖重新分配引用?
這是合法的。 這是做什么的:
aref = bobj;
將bobj
分配給aobj
。 參考aref
不會重新設置; 它仍然指的是aobj
。 但是現在aobj
是bobj
的副本,假設合理的賦值語義。 換句話說,就像你說的一樣:
aboj = bobj;
如果aref
指的是aobj
,則aref
在大多數情況下(根據定義)的行為與aobj
完全相同。
特別是, aref = bobj
具有與aobj = bobj
完全相同的效果。 沒有更多了。 aref
不會突然停止引用aobj
並開始引用bobj
只是因為你做了aobj = bobj
,所以aobj = bobj
也沒有這種效果。
試圖了解如何在C ++中阻止對引用的重新分配。 我了解,正如在重新分配C ++參考變量中一樣,不能重新分配參考本身,但是refree的值正在更改。 但我想了解它如何用於實例對象
對於下面的代碼
class A{};
A aobj;
A& aref = aobj;
A bobj;
aref = bobj;
想了解以上內容是否合法以及這里發生了什么。
如果它合法,那么我將無法理解它是如何工作的。 我們是否只是在更改變量'aobj'持有的值? 然后,將其與“ aref”相同,即現在指向對象“ bobj”
如果它是非法的,是否被視為試圖重新分配參考?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.