實驗六靜態(tài)成員與友元

實驗六靜態(tài)成員與友元

ID:41738389

大?。?3.78 KB

頁數(shù):6頁

時間:2019-08-31

實驗六靜態(tài)成員與友元_第1頁
實驗六靜態(tài)成員與友元_第2頁
實驗六靜態(tài)成員與友元_第3頁
實驗六靜態(tài)成員與友元_第4頁
實驗六靜態(tài)成員與友元_第5頁
資源描述:

《實驗六靜態(tài)成員與友元》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、實驗六靜態(tài)成員與友元姓名:王永杰10電子學(xué)號:1014860069【實驗冃的】1.掌握友元函數(shù)的定義、使用方法以及特點。2.握靜態(tài)成員函數(shù)和靜態(tài)數(shù)據(jù)成員的功能。【實驗內(nèi)容】1.調(diào)試下列程序,寫出輸出結(jié)果,并分析輸出結(jié)果。#includeHiostream.hMclassMy{public:My(intaa){A=aa;B-=aa;}staticvoidfun(Mym);private:intA;staticintB;};voidMy::fun(Mym){cout?MA=H?m.A?endl;cout<

2、=100;intmain(){MyP(6),Q⑻;My::fun(P);Q.fun(Q);return0;運行結(jié)果A=6B=86A=8B=86Pressanykeytocontinue分析:i?i掙態(tài)數(shù)據(jù)成員屬于類,普通數(shù)據(jù)成員屬于某一對彖1.在類中不給靜態(tài)數(shù)據(jù)成員分配內(nèi)存空間;2.靜態(tài)數(shù)據(jù)成員與靜態(tài)變量一樣,是在編譯時創(chuàng)建并初始化,它在該類的任何対象被建立Z前就存在;3.靜態(tài)數(shù)據(jù)成員不能在類中進行初始化,必須在類外的其他地方為它捉供定義;一般在main()開始Z前、類的聲明Z后的特殊地帶為它提供定義和初始化;4.私冇靜態(tài)數(shù)據(jù)成員不能被類外部函

3、數(shù)訪問,也不能用對象進行訪問。2.設(shè)計一個含有靜態(tài)成員、靜態(tài)成員函數(shù)的程序,分析程序結(jié)果,理解靜態(tài)成員(函數(shù))與類和對象的關(guān)系。參考程序:#includeclassA{friendclassB;〃友元類的聲明public:voidSet(inti){x=i;)friendintadd(A&fl);//友元函數(shù)的聲明voidDisplayO{cout?,,x=,,?x?,,,y=n?y?endl;}private:intx;staticinty;};intadd(A&fl){returnfl.x+1;}classB{pub

4、lic:B(inti,intj);voidDisplayO;private:Aa;//A類的對象a作為類B的私冇成員};intA::y=1;〃靜態(tài)成員必須先賦初值B::B(inti,intj)a.x=i;A::y=j;voidB::Display(){cout?'lx=',?a.x?,y=H?A::y?endl;}voidmain(){Ab;a.Set(5);//友元函數(shù)的調(diào)用cout?add(b)?endl;b.DisplayO;Bc(6,9);//a.x=6,X::y=9;c.Display();b.DisplayO;}結(jié)果—■■-ja」

5、a問題:(l)分析友元函數(shù)add()的定義、調(diào)用與成員函數(shù)的區(qū)別。友元函數(shù)ndd()的定義:能夠訪問類A的私有成員但又不是該類成員函數(shù)的函數(shù)。友元函數(shù)通過訪問類A的私冇成員X與Y并將其值輸出,但友元函數(shù)并不是該類的成員函數(shù):而成員函數(shù)本身屬于該類的成員函數(shù),一個類的成員函數(shù)町作為另一個類的友元函數(shù)。⑵、分析友元類B的成員函數(shù)如何引用類A的私有成員的?友元函數(shù)的特點是能夠訪問類屮的私有成員的非成員函數(shù)。通過聲明一類A的友元函數(shù)friendintadd(A&fl);,就可以用這個函數(shù)白接訪問類A的私有成員了。⑶、根據(jù)運行結(jié)果分析下列程序中靜態(tài)成員B

6、值的變化和靜態(tài)成員函數(shù)的引用方式。#includcclassM{public:M(inta){A=a;B+=a;}staticvoidfl(Mm);〃靜態(tài)公有成員函數(shù)聲明private:intA;staticintB;〃靜態(tài)私有成員};intM::B=O;voidm)〃在靜態(tài)成員函數(shù)中對不同類型成員的引用方式{coutvv"A二”vvm.Avvendl;//引用類的非靜態(tài)成員,用點域法coutvv“B=”vvBvveixll;〃引用類的靜態(tài)成員,直接引用}voidmain(){MP(5),Q(10);}[Milyiuua

7、i

8、main▼

9、?灼■;=4KJM::fl(P);//調(diào)用靜態(tài)成員函數(shù)國I”E:VISUALC++6?0SP6簡體中文版COMMONMSDEV983E永杰Debug3E永杰.exe”A=5DB=15fi=10B=15■Pressanykeytocontinue1#includeclassM1.分析并調(diào)試程序,完成下列問題。#includeniostream.hH#inckidc"cmath.h"classMy{public:My(doublei=0){x=y=i;}My(doublci,doublej){x=

10、i;y=j;}My(My&m){x=m.x;y=m.y;}frienddoubledist(My&a,My&b);private:doublex,y;

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。