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->成員函式這種形式來使用的。
相關文章
- 120 C++中的物件指標C++物件指標
- 詳解c++指標的指標和指標的引用C++指標
- C++ this 指標C++指標
- C++ 指標C++指標
- C++中const與指標、引用的總結C++指標
- C++中的可見性 指標 筆記C++指標筆記
- 聊聊 C++ 中的幾種智慧指標 (上)C++指標
- C++指標理解C++指標
- C++智慧指標C++指標
- 【C++系列】指標物件和物件指標的區別C++指標物件
- c++智慧指標中的reset成員函式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++ 用智慧指標這樣包裝 this 指標是否可行C++指標
- C++ 返回函式指標的函式C++函式指標
- C++ 指標和迭代器支援的操作C++指標
- 【C++】智慧指標的正確使用方式C++指標
- c++ 智慧指標用法詳解C++指標
- C++筆記(11) 智慧指標C++筆記指標
- C++標準庫有四種智慧指標C++指標
- C++與Rust操作裸指標的比較C++Rust指標
- [C++ Daily] 虛表與虛指標的理解C++AI指標
- C++指標的概念解讀 超詳細C++指標
- C++中結構體是使用例項還是指標C++結構體指標
- C++ 指標常見用法小結C++指標
- C++程式的函式指標:實操來了C++函式指標
- Rust中的函式指標Rust函式指標
- C++ 成員資料指標成員函式指標簡單測試C++指標函式
- C++ 指標動態記憶體分配C++指標記憶體
- c++指標傳遞與引用傳遞C++指標