欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中this指針的介紹及使用實(shí)例講解

 更新時(shí)間:2025年05月08日 17:03:18   作者:秋風(fēng)&蕭瑟  
這篇文章主要介紹了C++中this指針的介紹及使用實(shí)例講解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

this指針的介紹及使用

1.this指針的作用

Cat &cmpAge(Cat &other)
{
	if(other.age>age)
	    return other;
	else
	    return *this;
}

用這個(gè)例子引出this指針:
指向當(dāng)前對(duì)象的一個(gè)指針,哪個(gè)對(duì)象調(diào)用成員函數(shù),this指針就指向該對(duì)象

示例代碼1:(this指針存放當(dāng)前對(duì)象的地址)

#include <iostream>
using namespace std;
/*
    引入this指針:C++專(zhuān)門(mén)用來(lái)指向當(dāng)前對(duì)象地址的一個(gè)指針
                  當(dāng)前對(duì)象是誰(shuí),this指針就自動(dòng)存放了誰(shuí)的地址
    當(dāng)前對(duì)象:誰(shuí)調(diào)用了成員函數(shù),誰(shuí)就是當(dāng)前對(duì)象
*/
class Rect
{
public:
    /*
        底層原理:
          當(dāng)前對(duì)象.show();
          Rect *this=&當(dāng)前對(duì)象 
    */
    void show()
    {
        cout<<"this指針打印出來(lái)的地址是當(dāng)前對(duì)象的地址: "<<this<<endl;
    }
};
int main(int argc,char **argv)
{
    //創(chuàng)建矩形類(lèi)的對(duì)象
    Rect r1;
    Rect r2;
    cout<<"r1的地址: "<<&r1<<endl;
    cout<<"r2的地址: "<<&r2<<endl;
    //當(dāng)前對(duì)象:誰(shuí)(r1)調(diào)用了成員函數(shù),誰(shuí)(r1)就是當(dāng)前對(duì)象
    r1.show();
    //當(dāng)前對(duì)象:誰(shuí)(r2)調(diào)用了成員函數(shù),誰(shuí)(r2)就是當(dāng)前對(duì)象
    r2.show();
}
/*
執(zhí)行結(jié)果:
	r1的地址: 0x7ffdf90a5cb6
	r2的地址: 0x7ffdf90a5cb7
	this指針打印出來(lái)的地址是當(dāng)前對(duì)象的地址: 0x7ffdf90a5cb6
	this指針打印出來(lái)的地址是當(dāng)前對(duì)象的地址: 0x7ffdf90a5cb7
*/

示例代碼2:(this指針的使用)

#include <iostream>
using namespace std;
/*
    引入this指針:C++專(zhuān)門(mén)用來(lái)指向當(dāng)前對(duì)象地址的一個(gè)指針
                  當(dāng)前對(duì)象是誰(shuí),this指針就自動(dòng)存放了誰(shuí)的地址
    定義方法:比較兩個(gè)矩形對(duì)象的大小(按照w和h比較,要求w,h都同時(shí)大于另外一個(gè)矩形),返回較大的那個(gè)對(duì)象
*/
class Rect
{
public:
    //定義方法給w,h設(shè)置值,間接地使用w和h
    void setAttr(float _w,float _h);
    //比較兩個(gè)矩形的大小
    Rect compare(Rect &other)
    {
        if((this->w)>other.w && (this->h)>other.h)
        {
            return *this;
        }
        else
            return other;
    }
    void show()
    {
        cout<<"寬: "<<w<<endl;
        cout<<"高: "<<h<<endl;
    }
private:
    //屬性
    float w;  
    float h; 
};
void Rect::setAttr(float _w,float _h)
{
    w=_w;
    h=_h;
}
int main(int argc,char **argv)
{
    //創(chuàng)建矩形類(lèi)的對(duì)象
    Rect r1;
    Rect r2;
    //設(shè)置寬高
    r1.setAttr(9.8,5.6);
    r2.setAttr(1.2,0.5);
    //比較大小
    //寫(xiě)法1:當(dāng)前對(duì)象就是r1
    //Rect temp=r1.compare(r2);
    //temp.show();
    //寫(xiě)法2:當(dāng)前對(duì)象就是r2
    Rect temp=r2.compare(r1);
    temp.show();
}
/*
執(zhí)行結(jié)果:
    寬: 9.8
    高: 5.6
*/ 

2.this指針的寫(xiě)法

this->age //指針調(diào)用
(*this).age //this解引用

示例代碼:

#include <iostream>
using namespace std;
/*
    this指針平時(shí)寫(xiě)成員函數(shù)代碼,可以省略的
*/
class Rect
{
public:
    void show()
    {
    }
    void setAttr(float _w,float _h)
    {
        //寫(xiě)法1:標(biāo)準(zhǔn)的寫(xiě)法-->寫(xiě)全面
        //this->w=_w;
        //this->h=_h;
        //寫(xiě)法2:省略this的寫(xiě)法
        w=_w;
        h=_h;
    }
private:
    float w;
    float h;
};
int main(int argc,char **argv)
{
    Rect r1;
    Rect r2;
    r1.setAttr(1.2,0.8);
}

到此這篇關(guān)于C++中this指針的介紹及使用的文章就介紹到這了,更多相關(guān)C++ this指針內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C/C++ 基礎(chǔ) 之回調(diào)函數(shù)示例詳解

    C/C++ 基礎(chǔ) 之回調(diào)函數(shù)示例詳解

    這篇文章主要介紹了C/C++ 基礎(chǔ) 之回調(diào)函數(shù)示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-04-04
  • C語(yǔ)言實(shí)現(xiàn)推箱子游戲完整代碼

    C語(yǔ)言實(shí)現(xiàn)推箱子游戲完整代碼

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子游戲完整代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C++中rapidjson將嵌套map轉(zhuǎn)為嵌套json的講解

    C++中rapidjson將嵌套map轉(zhuǎn)為嵌套json的講解

    今天小編就為大家分享一篇關(guān)于C++中rapidjson將嵌套map轉(zhuǎn)為嵌套json的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • C++虛函數(shù)表深入研究

    C++虛函數(shù)表深入研究

    這篇文章主要介紹了C++的虛函數(shù)表,內(nèi)容非常詳細(xì),思路清晰,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-10-10
  • c++ 實(shí)現(xiàn)KMP算法

    c++ 實(shí)現(xiàn)KMP算法

    這篇文章主要介紹了c++ 實(shí)現(xiàn)KMP算法的示例,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-10-10
  • 關(guān)于C++復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)講解

    關(guān)于C++復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)講解

    今天小編就為大家分享一篇關(guān)于關(guān)于C++復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • C語(yǔ)言中堆空間的生成與釋放詳解

    C語(yǔ)言中堆空間的生成與釋放詳解

    以下是對(duì)C語(yǔ)言中堆空間的生成與釋放進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • C++ Sort函數(shù)使用場(chǎng)景分析

    C++ Sort函數(shù)使用場(chǎng)景分析

    sort函數(shù)是algorithm庫(kù)下的一個(gè)函數(shù),sort函數(shù)是不穩(wěn)定的,即大小相同的元素在排序后相對(duì)順序可能發(fā)生改變,如果某些場(chǎng)景需要保持相同元素間的相對(duì)順序,可使用stable_sort函數(shù),接下來(lái)通過(guò)本文給大家介紹C++ Sort函數(shù)詳解,感興趣的朋友一起看看吧
    2025-04-04
  • c++關(guān)鍵字mutable深入解析

    c++關(guān)鍵字mutable深入解析

    先說(shuō)用法,mutable關(guān)鍵字只能修飾非靜態(tài)以及非常量成員變量,使用mutable修飾的成員變量在const函數(shù)中的值是可以修改的
    2013-09-09
  • C語(yǔ)言實(shí)現(xiàn)五子棋游戲

    C語(yǔ)言實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評(píng)論