日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C++ this指针

發布時間:2024/1/1 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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指針的操作

  • 在類的非靜態成員函數中返回類對象本身的時候,我們可以使用圓點運算符*,箭頭運算符->。#include<iostream> using namespace std; class A{private:int x;public:A(){x=0;}void display(){cout<<this<<endl;cout<<this->x<<endl;cout<<x<<endl;cout<<(*this).x<<endl;} }; int main(void){A a;a.display(); } 輸出:0x70fe40 0 0 0
  • 實現級聯
  • 關于this指針的一個精典回答:

    當你進入一個房子后,
    你可以看見桌子、椅子、地板等,
    但是房子你是看不到全貌了。
    對于一個類的實例來說,
    你可以看到它的成員函數、成員變量,
    但是實例本身呢?
    this是一個指針,
    它時時刻刻指向你這個實例本身。

    總結

    以上是生活随笔為你收集整理的C++ this指针的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。