C++簡(jiǎn)明圖解this指針的使用_第1頁(yè)
C++簡(jiǎn)明圖解this指針的使用_第2頁(yè)
C++簡(jiǎn)明圖解this指針的使用_第3頁(yè)
C++簡(jiǎn)明圖解this指針的使用_第4頁(yè)
C++簡(jiǎn)明圖解this指針的使用_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第C++簡(jiǎn)明圖解this指針的使用目錄成員數(shù)據(jù)和成員函數(shù)的存儲(chǔ)方式this指針的引入this指針概述this指針的使用c++的封裝性:將數(shù)據(jù)和方法封裝在一起

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

每個(gè)對(duì)象擁有獨(dú)立的數(shù)據(jù).

每個(gè)對(duì)象共享同一個(gè)方法。

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

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

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

this指針的引入

classData

public:

intm_num;

voidsetNum(intnum)

m_num=num;

voidtest01()

Dataob1;

ob1.setNum(10);

cout"ob1.m_num="ob1.m_numendl;

Dataob2;

ob2.setNum(20);

cout"ob2.m_num="ob2.m_numendl;

Dataob3;

ob3.setNum(30);

cout"ob3.m_num="ob3.m_numendl;

}

運(yùn)行結(jié)果:

this指針概述

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

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

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

classData

public:

intm_num;

voidsetNum(intnum)

//m_num=num;

this-m_num=num;

voidtest01()

Dataob1;

ob1.setNum(10);

cout"ob1.m_num="ob1.m_numendl;

Dataob2;

ob2.setNum(20);

cout"ob2.m_num="ob2.m_numendl;

Dataob3;

ob3.setNum(30);

cout"ob3.m_num="ob3.m_numendl;

}

運(yùn)行結(jié)果:

注意:

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

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

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

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

this指針的使用

1、當(dāng)形參和成員變量同名時(shí),可用this指針來(lái)區(qū)分

classData

public:

intnum;

//形參和成員名相同

voidsetNum(intnum)

//形參num

//成員numthis-num

//num=num;//就近原則形參num賦值給形參num

this-num=num;

//將形參num賦值給對(duì)象中成員num

};

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

classMyCout

public:

MyCoutmyCout(char*str)

coutstr;

return*this;//*this代表就是當(dāng)前調(diào)用該函數(shù)的對(duì)象

intmain(intargc,char*argv[])

MyCoutob;

ob.myCout("hehe");

ob.myCout("haha");

ob.myCout("xixi");*/

ob.myCout("hehe").myCout("haha").myCout("xixi");//ob.myCout("hehe")==ob

return0;

}

運(yùn)行結(jié)果:

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

classData

public:

inta;//4B

public:

voidsetA(inta)

this-a=a;

return;

intgetA(void)

returnthis-

};

4、this指針完成鏈?zhǔn)讲僮?/p>

classPrintf

public:

PrintfmyPrint(intvalue)

coutvalue"";

//*this==外界的對(duì)象

return*

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論