在 c++ 中,每乙個物件都能通過this指標來訪問自己的位址。this指標是所有成員函式的隱含引數。因此,在成員函式內部,它可以用來指向呼叫物件。
友元函式沒有this指標,因為友元不是類的成員。只有成員函式才有this指標。
成員函式最終被編譯成與物件無關的普通函式,除了成員變數,會丟失所有資訊,所以編譯時要在成員函式中新增乙個額外的引數,把當前物件的首位址傳入,以此來關聯成員函式和成員變數。這個額外的引數,實際上就是 成員函式的乙個隱式形參this,它是成員函式和成員變數關聯的橋梁。在編譯階段由編譯器會默默地將它新增到引數列表中。
this 作為隱式形參,本質上是成員函式的區域性變數,所以只能用在成員函式的內部,並且只有在通過物件呼叫成員函式時才給 this 賦值。
幾點注意:
c 指標入門
什麼是指標?其實指標就像是其它變數一樣,所不同的是一般的變數包含的是實際的真實的資料,而指標是乙個指示器,它告訴程式在記憶體的哪塊區域可以找到資料。這是乙個非常重要的概念,有很多程式和演算法都是圍繞指標而設計的,如鍊表。開始學習 如何定義乙個指標呢?就像你定義乙個其它變數一樣,只不過你要在指標名字前...
C 入門 指標
指標是乙個用來儲存位址的變數。int a 10 int p a通過解引用的方式找到指標指向的記憶體 p 1000 cout p endl cout p endl 32位作業系統下,指標都占用4個位元組 64位作業系統下,佔8個位元組。cout sizeof int endl cout sizeof ...
C語言 指標入門
在我年輕的時候,我三次鼓起勇氣學習c,三次都倒在了指標上 雖然很清楚指標是一種存放位址的變數,但是他具體是乙個什麼意思呢?我把整個空間看成乙個 n 1 維的空間。n 是資料型別,可能是int,char,double,等等。1 是位址。把位址看成一根數軸。舉個粒子 int pa int a 5 pa ...