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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

this指针的作用和用法

發布時間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 this指针的作用和用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于C++中成員變量和成員函數是分開存儲的,所以每一個非靜態成員函數只會誕生一份函數實例,就是多個同類型的對象會共用一塊代碼,如果需要讓一塊代碼調用自己,可以用到this指針,this是C++提供的特殊的對象指針,不需要定義。

this指針指向被調用的成員函數所屬的對象

第一個用途:當形參和成員變量同名時,可以用this指針來區分

struct Member {Member(int score){this->score=score; //this->成員變量 = 形參}int score; }; int main() {Member n1(5);cout<<n1.score<<endl; //5 }

當然如果形參和成員變量名字不一樣時,也可以不使用this指針

第二個用途:在類的非靜態成員函數中返回對象本身,可使用return *this,用于鏈式編程

struct Member {Member(int score){this->score=score;}Member& AddScore(Member& n) //這里如果不使用&的話,返回的雖然也是一個對象,但是這個對象不是n1了,是臨時創建出來的對象{this->score+=n.score;return *this;}int score; }; int main() {Member n1(5);Member n2(100);Member n3(30);n1.AddScore(n2); //5+100=105n1.AddScore(n2).AddScore(n3);//105+100+30=235cout<<n1.score<<endl; //235 }


由于AddScore()函數返回的是一個對象,對這個對象取引用,則這個對象也就是n1


struct Member {Member(int score){this->score=score;}Member AddScore(Member& n) //這里沒有使用引用,返回的雖然也是一個對象,但是這個對象不是n1了,是臨時創建出來的對象{this->score+=n.score;return *this;}int score; }; int main() {Member n1(5);Member n2(100);Member n3(30);n1.AddScore(n2); //5+100=105n1.AddScore(n2).AddScore(n3);//105+100=205cout<<n1.score<<endl; //205 }


由于AddScore()函數返回的是一個對象,但是沒有引用,則這個對象也就不是n1了,而是臨時創建出來的n1’,n1’中的AddScore()函數執行一次后返回的是n1’’

總結

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

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