***************==this指標的由來********************
乙個學生可以有多本書一樣,而這些書都是屬於這個同學的;同理,如果有很多個同學在一起,那麼為了確定他們的書不要拿混淆了,最好的辦法我想應該就是每個同學都在自己的書上寫上名字,這樣肯定就不會拿錯了。
同理,乙個物件的多個成員就可看作是這個物件所擁有的書;而在很多個物件中間,我們為了證明某個成員是自己的成員,而不是其他物件的成員,我們同樣需要給這些成員取上名字。在c++中,我們利用this指標幫助物件做到這一點,this指標記錄每個物件的記憶體位址,然後通過運算子->訪問該物件的成員。
***************==this指標作用示例********************
二話不說!我們通過乙個程式來體現this指標的實際用處:
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include
using
namespace
std;
class
a
void
set(
int
x);
int
main()
這個程式的輸出如下:
通過這個輸出結果,我們可以看到,物件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...