3 回答

TA貢獻1862條經驗 獲得超6個贊
當該語言第一次發展時,在具有實際用戶的早期版本中,沒有引用,只有指針。添加操作員重載時添加了引用,因為它需要引用才能一致地工作。
的用途之一this
是使對象獲得指向自身的指針。如果是參考,我們必須寫&this
。另一方面,當我們編寫一個賦值運算符時,我們必須這樣做return *this
,它看起來更簡單return this
。因此,如果您的菜板空白,則可以選擇其中任何一種方式。但是C ++逐漸發展以響應用戶社區的反饋(例如最成功的事物)。向后兼容性的價值完全壓倒了由于this
作為參考或指針而產生的次要優點/缺點。

TA貢獻1848條經驗 獲得超6個贊
因為在添加引用之前,“ this”已引入C ++(實際上是帶有類的C)。另外,我選擇“ this”來遵循Simula的用法,而不是(后來的)Smalltalk對“ self”的用法。

TA貢獻1845條經驗 獲得超8個贊
C ++標準指出
9.3.2 / 1
在非靜態(9.3)成員函數的主體中,關鍵字this是一個非左值表達式,其值是為其調用該函數的對象的地址。在類X的成員函數中,此類型為X *。如果將成員函數聲明為const,則其類型為const X *;如果將成員函數聲明為volatile,則其類型為volatile X *;如果將成員函數聲明為const volatile,則其類型為const。易失X *。
但是在其他參考文獻中,發現了其他東西。于是有人主動出擊并給斯特勞斯特魯普先生發了郵件。隨后的對話可以在這里找到。
- 3 回答
- 0 關注
- 542 瀏覽
添加回答
舉報