this指標的用法和含義

2021-06-20 23:14:55 字數 1374 閱讀 5033

(1)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:

/*  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:

/* 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 

*/(2)memcpy用來做記憶體拷貝,你可以拿它拷貝任何資料型別的物件,可以指定拷貝的資料長度.

strcpy就只能拷貝字串了,它遇到'\0'就結束拷貝.

explain用法和結果的含義

idselect識別符。這是select的查詢序列號 select typeselect型別,可以為以下任何一種 table輸出的行所引用的表 type聯接型別。下面給出各種聯接型別,按照從最佳型別到最壞型別進行排序 possible keys指出mysql能使用哪個索引在該表中找到行 key顯示m...

mysql explain用法和結果的含義

詳細可參考 explain顯示了mysql如何使用索引來處理select語句以及連線表。可以幫助選擇更好的索引和寫出更優化的查詢語句。使用方法,在select語句前加上explain就可以了 如 explain select surname,first name form a,b where a.i...

python m引數的含義和用法

python m line profiler test.py.lprof由於個人比較好奇,我就多方查閱資料,但網上各位大佬的部落格寫的可能有點深奧,同時也並未清晰明了地展示其能達到功能,我還是花了好久才最終終於大概弄懂了這個 m的含義以及到底它有什麼用。當然這可能也是因為我的理解能力較差,吼吼吼。今...