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...