C++类:this指针
成員函數無論是否是靜態都只有一份,需要通過this指針來幫助成員函數確定是哪個對象在調用他。This指針是成員函數的一個隱式形參,隱含在每一個非靜態成員函數內,不需要聲明定義,直接調用即可。我們不能顯示地調用this指針。
This指針幫助我們來把對象當成一個整體來訪問,而非直接訪問對象的某個成員。
This指針指向被調用的成員函數所屬的對象。This指針的本質其實是一個指針常量,即指針是一個常量指針。比如在使用類創建一個對象A時,this指針就會一直指向這個對象A,而不會指向其他地方。即在調用成員函數時會通過this指針將對象的地址隱式地傳入成員函數。相當于以下結構:
This指針指向的對象不可以修改,但是可以通過解引用的方式,修改對象里的值,如下:
對象調用成員函數,成員函數中的成員屬性前面會默認隱式的加上this ->,相當于隱式地加上對象名 ->。
在類的非靜態成員函數中,可以通過返回*this來返回對象本身(因為this指向的就是對象)。哪個對象調用的成員函數,該成員函數里的this就指向的那個對象。
如這里,函數中的this指向的就是p1。這里返回的是一個引用,因此后續操作對象還是這個p1。如果去掉那個&返回的是一個值的話,則根據拷貝函數的定義,返回的過程其實是將p1重新拷貝賦值給了一個新的變量p1’。
當形參與成員屬性同名時,可用this來區分。
當程序是這個樣子時,編譯器會將這三個age認作是同一個變量。也就是說調用這個構造函數時給這個age賦的值將無法傳輸給屬性age。面對這種情況,要么改變屬性的名稱,要么寫成這種形式:
同樣,在類內部,每一個屬性的前面其實也有this->,即this指針也幫助成員屬性確定了是哪個對象在調用他。
總結
以上是生活随笔為你收集整理的C++类:this指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在WorkNC中载入机床?
- 下一篇: WorkNC零部件领域应用—齿轮加工