關於類的this指標總結

2021-05-25 07:56:59 字數 915 閱讀 3095

this指標其實就是在例項化乙個物件後產生的指標,並且是指向物件本身。

也就是說,即使沒有寫上this指標,編譯器在編譯的時候也會加上this指標。

它作為非靜態成員函式的隱含形參,對各成員的訪問可以通過this來實現。

它的特點可以概括為:

(1)this只能在成員函式中使用。而在全域性函式或者靜態函式中不能使用this指標,因為它們並不屬於某乙個物件。

如果例項化乙個物件,物件名為p,則this=&p;

(2)this的生命週期:在成員函式的開始前構造,在成員的銷毀後清除。也就是它的生命週期和任何乙個函式的引數一樣。

(3)this指標在類函式中的傳遞方式,通過例子說明:

#includeusing namespace std;

class p

void changepoint( int a, int b)

};int main()

那麼函式changepoint的原型應該是changepoint(p *this,int a,int y),只不過this是隱式宣告的。

void changepoint( int a, int b)

由此我們也知道了:p1呼叫該函式後,也就是p1的資料成員被呼叫並且值被更新,實際上

該函式起的作用相當於:p1.x+=a;p1.y+=b;

(4)this指標存放的位置並不固定,有可能在堆,棧,或者全域性變數區中。所以我們無法知道乙個物件的this指標的位置。

當你進入乙個房子後,

你可以看見桌子、椅子、地板等,

但是房子你是看不到全貌了。

對於乙個類的例項來說,

你可以看到它的成員函式、成員變數,

但是例項本身呢?

this是乙個指標,它時時刻刻指向你這個例項本身。

類的this指標 總結

類的this指標有以下特點 1 this只能在成員函式中使用 全域性函式,靜態函式都不能使用this。實際上,成員函式預設第乙個引數為t const this。如 class a 其中,func的原型在編譯器看來應該是 int func a const this,int p 2 由此可見,this在...

關於指標的總結

關於指標的總結 1.指標含義 指標其實是乙個用於存放記憶體位址的變數.在記憶體中跟整形沒什麼區別,由於他必須儲存的資料必須能夠唯一標示乙個記憶體單元.所以在32位系統裡面只占用兩個位元組的長度.但是為什麼在宣告乙個指標變數的的時候卻要指定是指向哪一種型別的指標呢 eg int pint float ...

關於函式指標的總結

函式指標的作用 它主要的用途是轉換表和作為引數傳遞給另乙個函式。舉乙個函式指標宣告的例子 int pf int int 解釋 pf是乙個指向函式的指標,此被指向函式包含兩個int型形參,返回值為int型 注意 宣告函式指標時必須在 號與指標名稱pf之外加上 否則不能成功 例程 函式指標 includ...