C this指標的用法

2021-07-31 10:53:18 字數 1363 閱讀 6133

this指標的含義及其用法: 

1. this指標是乙個隱含於每乙個成員函式中的特殊指標。它指向正在被該成員函式操作的那個物件

。2. 當對乙個物件呼叫成員函式時,編譯程式先將物件的位址賦給this指標,然後呼叫成員函式,每次成員函式訪問資料成員時,由隱含使用this指標。

3. 當乙個成員函式被呼叫時,自動向它傳遞乙個隱含的引數,該引數是乙個指向這個成員函式所在的物件的指標。 

4. 在c++中,this指標被隱含地宣告為: x *const this,這意味著不能給this 指標賦值;

在x類的const成員函式中,this指標的型別為:const x* const, 這說明this指標所指向的這種物件是不可修改的(即不能對這種物件的資料成員進行賦值操作); 

5. 由於this並不是乙個常規變數,所以,不能取得this的位址。

6. 在以下場景中,經常需要顯式引用this指標

(1) 為實現物件的鏈式引用(如例1); 

(2) 為避免對同一物件進行賦值操作(如例2);

(3) 在實現一些資料結構時,如list.

7. 舉例:

//例1:

/*  編輯編譯環境:dev-c++ 4.9.9.2  */

/*  file: person.cpp */

#include

#include

class person ***type;

public:

person(char *n, int a, ***type s)

int get_age(void) const

person& add_age(int a)

private:

char *name;

int age;

***type ***;

};void testperson(void)

int main(void)

/* result:

zhangsan.age = 20

zhangsan.add_age = 21

*///例2:

/*  編輯編譯環境:dev-c++ 4.9.9.2  */

/* file: location.cpp */

#include

class location ;

void assign(location& pointer);

int getx()

int gety()

};void location::assign(location& pointer)

}int main()

/* result:

x.x = 5, x.y = 4 

y.x = 5, y.y = 4 

*/

this指標 C this指標

this 是 c 中的乙個關鍵字,也是乙個 const 指標,不可以更改指向。指向當前物件,通過它可以訪問當前物件的所有成員。include includeusing namespace std class girlfriend void introduce introduce函式在編譯器看來是這個...

C this指標的理解

先要理解class的意思。class應該理解為一種型別,象int,char一樣,是使用者自定義的型別。雖然比int char這樣build in型別複雜的多,但首先要理解它們一樣是型別 用這個型別可以來宣告乙個變數,比如int x,myclass my等等。這樣就像變數x具有int型別一樣,變數my...

C this指標的理解

先要理解class的意思。class應該理解為一種型別,象int,char一樣,是使用者自定義的型別。雖然比int char這樣build in型別複雜的多,但首先要理解它們一樣是型別 用這個型別可以來宣告乙個變數,比如int x,myclass my等等。這樣就像變數x具有int型別一樣,變數my...