C 中的 this 為什麼是指標而不是引用?

時間 2021-05-31 15:35:39

1樓:中二青年

這個是c++作者的個人主頁,可以看一下答案,裡面還回答了,為什麼引入ref的原因。

Why is "this" not a reference?

Because "this" was introduced into C++ (really into C with Classes) before references were added. Also, I chose "this" to follow Simula usage, rather than the (later) Smalltalk use of "self".

2樓:

我的看法是起初沒C++沒有編譯器,只能通過轉化成C語言後使用C編譯器,而C語言沒有引用(當然那時候C++估計也沒引用吧?),所以用指標。

3樓:馮東

因為很多人不知道或者不相信這樣乙個事實:Bjarn 根本沒想在 C++ 裡引入 reference,但是用指標在 operator overloading 裡太難看了。所以 reference 是乙個純粹為了「好看」而很晚才引入的 feature。

4樓:

cpp在某些情況下,可能需要手動呼叫自定義的release函式釋放物件而不是使用析構函式,這時候可能需要執行delete this; this = null;此時如果使用引用就無法對this賦值。指標體現了C/C++的靈活性。

c 指標的定義為什麼是這樣?

int a 100,p a 或者其實是在問為什麼不自動推導p的型別?那也是可以的 auto a 100 auto p a 如果沒理解錯樓主的意思的話,樓主是感覺號就應該表達同乙個意思。但實際上不是,號在變數宣告裡表示指標,在指標變數前面表示取指標所指向的值。類似的情況在C 裡還有很多。你p不需要定義...

C 中如何定義指向函式指標的指標?

zr scat 瀉藥先定義乙個函式指標 typedef void pfn void 再定義指向函式指標的指標 void print void pfn func print pfn ptr func 在c 11下,可以這麼偷懶獲得型別 1 include 23using namespace std 4...

為什麼CFA中的 C 是Chartered而不是Certified?

Morgan 1.Statement of financial position 這個用詞是 USGAAP and IFRS的制定者考慮到資產負債表反應的不僅僅是乙個餘額,而更多的側重於企業的狀況,所以在大約2009年左右 具體時間記不清了,但是可以查到的 修改了這個表述方式。而非某一家美國公司的做...