C++中的this指標
this指標
一個類當中,有一個很隱蔽的特殊指標,它就是—this指標!
為什麼說它特殊?因為只要定義一個類,系統就會預定義個名字叫做this名且指向當前物件的指標。雖然我們看不到但卻可以使用它。
比如,我們來看一個時鐘類的一個成員函式,用來設定時間傳值的程式碼:
int Clock::SetTime(int h,int m,int s) { H = h; M = m; S = s; } 可以看到Clock類本身的成員變數為H、M、S,要用外部傳來的值給它們三個賦值,為了區別它們,我們把形參定義成小寫。那麼如果我們知道了this的存在,就可以這樣寫:
int Clock::SetTime(int h,int m,int s) { this->H = h; this->M = m; this->S = s; } //也可以寫成: int Clock::SetTime(int h,int m,int s) { (*this).H = h; (*this).M= m; (*this).S= s; }
可以看到,以上兩種寫法用到了物件中的隱藏的this指標,可以明確是本類中的成員,從而明顯的區別本物件與外部變數。
實際上,當一個物件呼叫其成員函式的時候,即便程式中有多個該類的物件,但成員函式的程式碼也僅有一份,所以為了區分它們是哪個物件呼叫的成員函式,編譯器也是轉化成this->成員函式這種形式來使用的。
相關文章
- C++中的指標與引用C++指標
- 120 C++中的物件指標C++物件指標
- C++ this 指標C++指標
- 聊聊 C++ 中的幾種智慧指標 (上)C++指標
- C++指標理解C++指標
- C++智慧指標C++指標
- 【c++】智慧指標C++指標
- C++的成員指標C++指標
- 注意C++中物件指標,慎用void*C++物件指標
- C++中const與指標、引用的總結C++指標
- c++智慧指標中的reset成員函式C++指標函式
- C++中的指標與引用詳細解讀C++指標
- C/C++指向指標的指標C++指標
- C++的未來和指標C++指標
- c++ 函式指標C++函式指標
- C++引用和指標C++指標
- C++指標轉換C++指標
- C++指標問題C++指標
- 「C++」理解智慧指標C++指標
- c++指標小計C++指標
- C++中的動態記憶體與智慧指標C++記憶體指標
- C++中函式指標與函式物件C++函式指標物件
- 再學C/C++ 之 指標常量 和 常量指標C++指標
- C++中的函式指標和函式物件總結C++函式指標物件
- 詳解c++指標的指標和指標的引用C++指標
- C++指標與引用的區別C++指標
- C/C++指標總結C++指標
- C++ 類成員指標C++指標
- C++進階(智慧指標)C++指標
- 1-7 C++指標C++指標
- C++ 智慧指標詳解C++指標
- [C++]指標和引用(一)C++指標
- [C++]指標和引用(二)C++指標
- [C++]指標和引用(三)C++指標
- [C++]指標和引用(四)C++指標
- c++指標使用經驗總結之懸垂指標C++指標
- Swift 中的指標使用Swift指標
- C、C++用指標引用的差異C++指標