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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

把类成员改成指针_C++之this指针

發(fā)布時間:2023/12/19 c/c++ 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 把类成员改成指针_C++之this指针 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

this指針概念說明

前面一篇文章說到成員變量和成員函數(shù)是分開存儲的。

每一個非靜態(tài)成員函數(shù)只會誕生一份函數(shù)實(shí)例,也就是說多個同類型的對象會共用一塊代碼。

那么問題是:這一塊代碼是如何區(qū)分是哪個對象調(diào)用自己的呢?

C++通過特殊的對象指針,即this指針,解決上述問題的。this指針指向被調(diào)用的成員函數(shù)所屬對象。

this指針是隱含每一個非靜態(tài)成員函數(shù)內(nèi)的一種指針。

this指針不需要定義,直接可以使用。

this指針的用途:

  • 當(dāng)形參和成員變量同名時,可以用this指針來區(qū)分
  • 在類的非靜態(tài)成員函數(shù)中返回對象本身,可以使用return *this

示例代碼:

#include <iostream>using namespace std;class Person { public:Person(int age){m_Age = age; // 方式一// this->age = age; // 方式二 this指針指向被調(diào)用的成員函數(shù)所屬對象}Person& PersonAddAge(Person &p){this->m_Age += p.m_Age; // 將傳入對象的年齡和本身對象年齡想加 return *this; // this指向本身對象的指針,而*this指向的就是對象本體(相對于解引用)}int m_Age; // 方式一使用 // int age; // 方式二使用 };// 1.解決名稱沖突 void test01() {Person p1(18);cout << "p1 的年齡:" << p1.m_Age << endl; }// 2. 返回對象本身 void test02() {Person p1(10);Person p2(13);// 鏈?zhǔn)骄幊趟枷雙1.PersonAddAge(p2).PersonAddAge(p2).PersonAddAge(p2);cout << "相加后 p1 的年齡:" << p1.m_Age << endl; }int main(int argc, char const *argv[]) {/* code */// test01();test02();return 0; }

以上是this指針的使用介紹,以及相關(guān)示例代碼。

總結(jié)

以上是生活随笔為你收集整理的把类成员改成指针_C++之this指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。