this指標基礎介紹

2022-05-28 14:45:09 字數 1291 閱讀 9872

***************==this指標的由來********************

乙個學生可以有多本書一樣,而這些書都是屬於這個同學的;同理,如果有很多個同學在一起,那麼為了確定他們的書不要拿混淆了,最好的辦法我想應該就是每個同學都在自己的書上寫上名字,這樣肯定就不會拿錯了。

同理,乙個物件的多個成員就可看作是這個物件所擁有的書;而在很多個物件中間,我們為了證明某個成員是自己的成員,而不是其他物件的成員,我們同樣需要給這些成員取上名字。在c++中,我們利用this指標幫助物件做到這一點,this指標記錄每個物件的記憶體位址,然後通過運算子->訪問該物件的成員。

***************==this指標作用示例********************

二話不說!我們通過乙個程式來體現this指標的實際用處:12

3456

78910

1112

1314

1516

1718

1920

2122

2324

25#include

usingnamespacestd;

classa

voidset(intx);

intmain()

這個程式的輸出如下:

通過這個輸出結果,我們可以看到,物件a的記憶體位址和this指標的一模一樣(都是0017f7e8);而當執行到物件b的時候,它的記憶體位址又和它所對應的this指標指向的記憶體位址一模一樣了(都是0017f7dc)。這就說明了this指標變數記錄的是當前物件的記憶體位址,即this指標指向當前的物件!

在程式的第8行,我們就用了this指標的這個屬性,即:this->i=x;這句話就表示把x的值賦值給當前的物件的私有成員函式i。

***************==總結********************

通過上面這個例子,我們可以看到this指標最大的作用就是它儲存了當前物件的位址,並且應用指標的形式指向了當前的物件。這種好處我們將會在另外一篇博文中看到.......

this指標基礎介紹

this指標的由來 乙個學生可以有多本書一樣,而這些書都是屬於這個同學的 同理,如果有很多個同學在一起,那麼為了確定他們的書不要拿混淆了,最好的辦法我想應該就是每個同學都在自己的書上寫上名字,這樣肯定就不會拿錯了。同理,乙個物件的多個成員就可看作是這個物件所擁有的書 而在很多個物件中間,我們為了證明...

this指標基礎介紹

this指標的由來 乙個學生可以有多本書一樣,而這些書都是屬於這個同學的 同理,如果有很多個同學在一起,那麼為了確定他們的書不要拿混淆了,最好的辦法我想應該就是每個同學都在自己的書上寫上名字,這樣肯定就不會拿錯了。同理,乙個物件的多個成員就可看作是這個物件所擁有的書 而在很多個物件中間,我們為了證明...

void指標介紹

void指標 指標有兩個屬性 指向變數 物件的位址和長度 但是指標只儲存位址,長度則取決於指標的型別 編譯器根據指標的型別從指標指向的位址向後定址 指標型別不同則定址範圍也不同,比如 int 從指定位址向後尋找4位元組作為變數的儲存單元 double 從指定位址向後尋找8位元組作為變數的儲存單元 1...