[問題] this pointer; l-value

看板C_and_CPP作者 (Gloria)時間13年前 (2012/07/26 11:33), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): 我想把這個物件直接指向別的位址 所以我寫 void AssignAddress(Myclass<T> &A) { this = &A; } 錯誤結果(Wrong Output): complier說this不能是左值 為什麼不能是左值? 我要怎麼樣修改呢@@? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.91.150

07/26 11:40, , 1F
辦不到, this的type是 T* const, 不能修改它
07/26 11:40, 1F

07/26 11:41, , 2F
就算compiler真的不幸讓你改成功了也不代表這個物件的
07/26 11:41, 2F

07/26 11:41, , 3F
位址被你更改了
07/26 11:41, 3F

07/26 12:44, , 4F
原來如此
07/26 12:44, 4F

07/26 12:59, , 5F
讓人比較好奇的是你為什麼要搬動已生成物件的位址?
07/26 12:59, 5F

07/26 13:00, , 6F
就算可行 電腦做這件事的成本 和你用拷貝建構子在新位址
07/26 13:00, 6F

07/26 13:00, , 7F
產生一個物件的成本也應該是一樣的呀^^"
07/26 13:00, 7F
文章代碼(AID): #1G4Bg3RQ (C_and_CPP)