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

C++簡明圖解this指針的使用

 更新時間:2022年06月02日 09:38:05   作者:Bright-SKY  
this 指針在C++類和對象中是個很方便實用的關鍵字,可以簡化對象成員屬性的調用,使代碼表達的含義更加準確;在之前的學習中我們都可以判斷變量所占內存空間大小,那么我們創(chuàng)建的類對象所占的內存空間怎么計算呢?想知道this的妙用和類對象占用的內存空間就來跟我學習吧

c++的封裝性:將數(shù)據 和 方法 封裝在一起

數(shù)據 和 方法 是分開存儲。

每個對象 擁有獨立的數(shù)據.

每個對象 共享同一個方法。

成員數(shù)據和成員函數(shù)的存儲方式

1、成員函數(shù)不占類的空間

2、靜態(tài)成員數(shù)據不占類的空間

this指針的引入

class Data
{
public:
    int m_num;
 
    void setNum(int num)
    {
        m_num = num;
    }
};
void test01()
{
    Data ob1;
    ob1.setNum(10);
    cout<<"ob1.m_num = "<<ob1.m_num<<endl;
    Data ob2;
    ob2.setNum(20);
    cout<<"ob2.m_num = "<<ob2.m_num<<endl;
    Data ob3;
    ob3.setNum(30);
    cout<<"ob3.m_num = "<<ob3.m_num<<endl;
}

運行結果:

this指針概述

1、對象調用普通成員函數(shù) 在成員函數(shù)內部會產生一個指向該對象的this指針(this指針變量 是系統(tǒng)定義的)

2、this指針的目的:說明當前成員函數(shù) 是屬于哪個對象的

3、靜態(tài)成員函數(shù)內部 沒有this指針

class Data
{
public:
    int m_num;
    void setNum(int num)
    {
        //m_num = num;
        this->m_num = num;
    }
};
void test01()
{
    Data ob1;
    ob1.setNum(10);
    cout<<"ob1.m_num = "<<ob1.m_num<<endl;
    Data ob2;
    ob2.setNum(20);
    cout<<"ob2.m_num = "<<ob2.m_num<<endl;
    Data ob3;
    ob3.setNum(30);
    cout<<"ob3.m_num = "<<ob3.m_num<<endl;
}

運行結果:

注意:

1、this指針是隱含在對象成員函數(shù)內的一種指針

2、成員函數(shù)通過 this指針 即可知道操作的是那個對象的數(shù)據(定位對象)

3、靜態(tài)成員函數(shù)內部沒有this指針,靜態(tài)成員函數(shù)不能操作非靜態(tài)成員變量

(靜態(tài)成員函數(shù) 是屬于類 函數(shù)內部 沒有this指針)

this指針的使用

1、當形參和成員變量同名時,可用this指針來區(qū)分

class Data
{
public:
    int num;
    //形參 和成員名相同
    void setNum(int num)
    {
        //形參num
        //成員num  this->num
        //num= num;//就近原則 形參num 賦值給 形參num
        this->num = num;
        //將形參num 賦值給 對象中成員num
    }
};

2、在類的普通成員函數(shù)中返回對象本身(*this)(重要)

class MyCout
{
public:
    MyCout& myCout(char *str)
    {
        cout<<str;
        return *this;//*this 代表就是 當前調用該函數(shù)的對象
    }
};
int main(int argc, char *argv[])
{
    MyCout ob;
    /*
    ob.myCout("hehe");
    ob.myCout("haha");
    ob.myCout("xixi");*/
    ob.myCout("hehe").myCout("haha").myCout("xixi");//ob.myCout("hehe") == ob
    return 0;
}

運行結果:

3、如果成員數(shù)據和函數(shù)的形參 同名 必須使用this指針

class Data
{
public:
    int a;//4B
public:
    void setA(int a)
    {
        this->a = a;
        return;
    }
    int getA(void)
    {
        return this->a;
    }
};

4、this指針完成鏈式操作

class Printf
{
public:
    Printf& myPrint(int value)
    {
        cout<<value<<" ";
        //*this ==外界的對象
        return *this;
    }
};
void test01()
{
    Printf ob;
    ob.myPrint(10).myPrint(20).myPrint(30).myPrint(40);
    cout<<endl;
}

到此這篇關于C++簡明圖解this指針的使用的文章就介紹到這了,更多相關C++ this指針內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言初學者代碼中的常見錯誤與問題

    C語言初學者代碼中的常見錯誤與問題

    C語言初學者犯過的很多錯誤都非常典型,在初學者中非常普遍,于是整理了一下,應該對其他初學者有借鑒意義
    2013-11-11
  • 基于C++實現(xiàn)擲雙骰游戲的示例代碼

    基于C++實現(xiàn)擲雙骰游戲的示例代碼

    在最流行的博彩游戲中有一種名為“擲雙骰”(craps)的骰子游戲,這種游戲在世界各地的娛樂場所和大街小巷非常受歡迎。本文將用C++語言實現(xiàn)這一游戲,需要的可以參考一下
    2022-03-03
  • C語言模擬實現(xiàn)簡單掃雷游戲

    C語言模擬實現(xiàn)簡單掃雷游戲

    這篇文章主要為大家詳細介紹了C語言模擬實現(xiàn)簡單掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 利用Matlab制作一個賊簡單的粒子圣誕樹

    利用Matlab制作一個賊簡單的粒子圣誕樹

    圣誕節(jié)快到了,本文用Matlab繪制了圣誕樹祝你們圣誕節(jié)快樂,所以下面這篇文章主要給大家介紹了關于如何利用Matlab制作一個賊簡單的粒子圣誕樹,需要的朋友可以參考下
    2022-12-12
  • C語言 完整游戲項目推箱子詳細代碼

    C語言 完整游戲項目推箱子詳細代碼

    經典的推箱子是一個的古老游戲,目的是在訓練你的邏輯思考能力。在一個狹小的倉庫中,要求把木箱放到指定的位置,稍不小心就會出現(xiàn)箱子無法移動或者通道被堵住的情況,所以需要巧妙的利用有限的空間和通道,合理安排移動的次序和位置,才能順利的完成任務
    2021-11-11
  • C++對象的淺復制和深復制詳解及簡單實例

    C++對象的淺復制和深復制詳解及簡單實例

    這篇文章主要介紹了C++對象的淺復制和深復制詳解及簡單實例的相關資料,需要的朋友可以參考下
    2017-04-04
  • C++實現(xiàn)推箱子游戲

    C++實現(xiàn)推箱子游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Cocos2d-x人物動作類實例

    Cocos2d-x人物動作類實例

    這篇文章主要介紹了Cocos2d-x人物動作類實例,本文用大量代碼和圖片講解Cocos2d-x中的動作,代碼中同時包含大量注釋說明,需要的朋友可以參考下
    2014-09-09
  • C++之WSAAsyncSelect模型實例

    C++之WSAAsyncSelect模型實例

    這篇文章主要介紹了C++的WSAAsyncSelect模型,實例講述了socket與Windows消息機制的用法,需要的朋友可以參考下
    2014-10-10
  • C++實現(xiàn)隨機生成迷宮地牢

    C++實現(xiàn)隨機生成迷宮地牢

    這篇文章主要介紹了C++實現(xiàn)隨機生成迷宮地牢的相關資料及代碼分享,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03

最新評論