最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

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;
}

運行結(jié)果:

this指針概述

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

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

3、靜態(tài)成員函數(shù)內(nèi)部 沒有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;
}

運行結(jié)果:

注意:

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

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

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

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

this指針的使用

1、當(dāng)形參和成員變量同名時,可用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 代表就是 當(dāng)前調(diào)用該函數(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;
}

運行結(jié)果:

3、如果成員數(shù)據(jù)和函數(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;
}

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

相關(guān)文章

  • C語言函數(shù)超詳細講解上篇

    C語言函數(shù)超詳細講解上篇

    函數(shù)是一組一起執(zhí)行一個任務(wù)的語句。每個?C?程序都至少有一個函數(shù),即主函數(shù)?main()?,所有簡單的程序都可以定義其他額外的函數(shù),函數(shù)我們分兩篇來講解,接下來開始第一篇
    2022-04-04
  • C++一個函數(shù)如何調(diào)用其他.cpp文件中的函數(shù)

    C++一個函數(shù)如何調(diào)用其他.cpp文件中的函數(shù)

    這篇文章主要介紹了C++一個函數(shù)如何調(diào)用其他.cpp文件中的函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++?sqlite3數(shù)據(jù)庫配置使用教程

    C++?sqlite3數(shù)據(jù)庫配置使用教程

    SQLite 是一種嵌入式的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它是一個開源項目,已經(jīng)被廣泛應(yīng)用于各種應(yīng)用程序和操作系統(tǒng)中,這篇文章主要介紹了C++?sqlite3數(shù)據(jù)庫配置使用,需要的朋友可以參考下
    2023-08-08
  • C++內(nèi)存管理詳解使用方式

    C++內(nèi)存管理詳解使用方式

    內(nèi)存管理是C++最令人切齒痛恨的問題,也是C++最有爭議的問題,C++高手從中獲得了更好的性能更大的自由,C++菜鳥的收獲則是一遍—遍的檢查代碼和對C++的痛恨,但內(nèi)存管理在C++中無處不在,內(nèi)存泄漏幾乎在每個C++程序中都會發(fā)生,要想成為C++高手,內(nèi)存管理這關(guān)是必須過的
    2022-04-04
  • C++獲得本機所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法

    C++獲得本機所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狢++獲得本機所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • C++ 冒泡排序數(shù)據(jù)結(jié)構(gòu)、算法及改進算法

    C++ 冒泡排序數(shù)據(jù)結(jié)構(gòu)、算法及改進算法

    冒泡排序是一種簡單排序。這種排序是采用“冒泡策略”將最大元素移到最右邊。在冒泡過程中,相鄰兩個元素比較,如果左邊大于右邊的,則進行交換兩個元素。這樣一次冒泡后,可確保最大的在最右邊。然后執(zhí)行n次冒泡后排序即可完畢
    2013-04-04
  • QT實現(xiàn)視頻傳輸功能

    QT實現(xiàn)視頻傳輸功能

    這篇文章主要為大家詳細介紹了QT實現(xiàn)視頻傳輸功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 詳解C++中賦值,關(guān)系,函數(shù)調(diào)用運算符重載的實現(xiàn)

    詳解C++中賦值,關(guān)系,函數(shù)調(diào)用運算符重載的實現(xiàn)

    本文主要為大家講解一下三個C++中的運算符重載,分別是賦值運算符重載、關(guān)系運算符重載和函數(shù)調(diào)用運算符重載,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-06-06
  • C++中的unordered_map用法

    C++中的unordered_map用法

    當(dāng)你在C++中需要使用哈希表(無序映射)來管理鍵值對時,unordered_map?是一個非常有用的數(shù)據(jù)結(jié)構(gòu),本文主要介紹了C++中的unordered_map用法,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Qt專欄之模態(tài)與非模態(tài)對話框的實現(xiàn)

    Qt專欄之模態(tài)與非模態(tài)對話框的實現(xiàn)

    這篇文章主要介紹了Qt專欄之模態(tài)與非模態(tài)對話框的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

江北区| 大城县| 莫力| 兴海县| 云阳县| 汝城县| 佳木斯市| 凌海市| 绵阳市| 靖江市| 鹤峰县| 九寨沟县| 乌兰浩特市| 迭部县| 香港 | 武威市| 鄄城县| 开平市| 墨脱县| 漾濞| 中西区| 新平| 遂川县| 浏阳市| 涞水县| 新河县| 商南县| 英德市| 甘孜县| 泸溪县| 昌图县| 皮山县| 石首市| 壶关县| 苍溪县| 饶河县| 城口县| 成都市| 肇庆市| 长垣县| 宾川县|