C++ this指针
this 指針
引言:
首先,我們都知道類的成員函數可以訪問類的數據(限定符只是限定于類外的一些操作,類內的一切對于成員函數來說都是透明的),那么成員函數如何知道哪個對象的數據成員要被操作呢,原因在于每個對象都擁有一個指針:this指針,通過this指針來訪問自己的地址。
注意:
this指針并不是對象的一部分,this指針所占的內存大小是不會反應在sizeof操作符上的。this指針的類型取決于使用this指針的成員函數類型以及對象類型,
一、this指針的概念
定義
在 C++ 中,每一個對象都能通過 this 指針來訪問自己的地址。this 指針是所有成員函數的隱含參數。因此,在成員函數內部,它可以用來指向調用對象。
this只能在成員函數中使用
成員函數默認第一個參數為T* const register this。
(友元函數,全局函數不是成員函數)
this指針不能再靜態函數中使用
靜態函數如同靜態變量一樣,他不屬于具體的哪一個對象,靜態函數表示了整個類范圍意義上的信息,而this指針卻實實在在的對應一個對象,所以this指針不能被靜態函數使用。
this指針的創建
this指針在成員函數的開始執行前構造的,在成員的執行結束后清除。
this指針只有在成員函數中才有定義。
創建一個對象后,不能通過對象使用this指針。也無法知道一個對象的this指針的位置(只有在成員函數里才有this指針的位置)。當然,在成員函數里,你是可以知道this指針的位置的(可以&this獲得),也可以直接使用的。
二、this指針的操作
關于this指針的一個精典回答:
當你進入一個房子后,
你可以看見桌子、椅子、地板等,
但是房子你是看不到全貌了。
對于一個類的實例來說,
你可以看到它的成員函數、成員變量,
但是實例本身呢?
this是一個指針,
它時時刻刻指向你這個實例本身。
總結
以上是生活随笔為你收集整理的C++ this指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WorkNC批处理功能使人机结合——批量
- 下一篇: day01 PySpark