C++上機(jī)實驗報告5_第1頁
C++上機(jī)實驗報告5_第2頁
C++上機(jī)實驗報告5_第3頁
C++上機(jī)實驗報告5_第4頁
C++上機(jī)實驗報告5_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C+程序?qū)嶒瀳蟾鎸嶒炍?繼承與派生實驗?zāi)康?. 學(xué)習(xí)定義和使用 類的繼承關(guān)系 , 定義派生類2. 熟悉不同繼承方式下對基類成員的訪問控制3. 學(xué)習(xí)利用 虛基類 解決二義性問題實驗要求1定義一個基類Animal,有私有整型成員變量age,構(gòu)造其派生類dog,在其成員函數(shù) SetAge(intn)中直接給age賦值,看看會有什么問題,把a(bǔ)ge改為公有成員變量,還會有問題嗎?編程嘗試。2. 定義一個基類BaseClass有整型變量 Number,構(gòu)造其派生類DerivedClass,觀察構(gòu)造函數(shù)和 析構(gòu)函數(shù) 的執(zhí)行情況。3. 定義一個車(vehicle)基類,具有 Maxspeec、Weight等成

2、員,Run、Stop等成員函數(shù),由 此派生出自行車(bicycle)類、汽車(motorcar)類。自行車(bicycle)類有高度(Height) 等屬性,汽車(motorcar)類有座位數(shù)(SeatNun)等屬性。從 bicycle和motorcar派生出摩 托車( motorbicycle )類 ,在繼承過程中,注意 把 vehicle 設(shè)置為虛基類 。如果不把 vehicle 設(shè) 置為虛基類,會有什么問題?編程嘗試。實驗內(nèi)容及實驗步驟1.編寫程序定義基類 Animal,成員變量age定義為私有的。構(gòu)造派生類dog,在其成員函數(shù)SetAge (intn)中直接對age賦值時,會出現(xiàn)類似以

3、下的錯誤提示:error C2248 : age : cannot access private member declared in class Animalerror C2248 : age : cannot access private member declared in class Animal把a(bǔ)ge改為公有成員變量后重新編譯就可以了。程序名:Iab7_1.cpp。錯誤代碼:#include using namespace std;class Animalprivate: int age;public:Animal() ;class dog:public Animalpublic:

4、void SetAge(int n)age=n;編輯版 wordinf main()宀dog onp0ne.setAge(23x ref urn 0 八#inc-udeAios=reamv using namespace ssc-ass Anima-宀pub-pinf agppub-pAnima-()c-ass dog-bub-icAnima-#篙 wordpublic:void SetAge(int n)age=n;;int mai n()dog one;on e.SetAge(23); return 0;運(yùn)行結(jié)果:2.編寫程序定義一個基類BaseClass構(gòu)造其派生類DerivedClas

5、s,在構(gòu)造函數(shù)和析構(gòu)函數(shù)中用cout輸出提示信息,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。程序名:Iab7_2.cpp。源代碼:#in clude using n amespace std; class BaseClassprivate:int a;public:BaseClass()cout 基類構(gòu)造函數(shù)調(diào)用 endl;BaseClass()cout 基類析構(gòu)函數(shù)調(diào)用 endl;class DerivedClass:public BaseClass private:int b;public:DerivedClass()cout 派生類構(gòu)造函數(shù)調(diào)用 endl; ;DerivedClass()cout

6、 派生類析構(gòu)函數(shù)調(diào)用 #篙 wordLHdH LTliJTI.iFFJioa |QdU.bM4EE AL P0f vC伽輕b時廠團(tuán)乗轉(zhuǎn)首IHUhlrMLLE宜H-舐甘些43鍛肝“1卍;*h耳葉號主護(hù)曲網(wǎng)逼ffr*5IX 7叩! V ii上下片! 11 II q riafiQEflLct j邑薪匸i6*4.編寫程序定義一個車(vehicle)基類,由此派生出自行車( bicycle)類、汽車(motorcar) 類,注意把 vehicle派生為虛基類。再從 bicycle和motorcar派生出摩托車(motorcycle)類, 在main()函數(shù)中測試這個類。程序名 :lab7_3.cppo編

7、譯成功后,把vehicle設(shè)置為非虛基類,再編譯一次,此時系統(tǒng)報錯,無法編譯成功。這 是因為若不把vehicle設(shè)置為虛基類,會出現(xiàn)二義性錯誤,程序不能成功編譯。源代碼:#in cludeusing n amespace std;class Vehiclepublic:Vehicle();int a;void set()coutVehicle 調(diào)用endl;class Mortorcar:virtual public Vehicle public:Mortorcar();* int b;void set() coutMortorcar 調(diào)用 endl;class Bicycle:virtual

8、 public Vehiclepublic:Bicycle();int c;void set()coutBicycle 調(diào)用 endl;class Mortorcycle:public Mortorcar,public Bicycle public: Mortorcycle(); int d; void set() coutMortorcycle 調(diào)用 I 5m_Ll:CiiaaV.科燉JIM MH IpqitLLe-i vklfliHl HI 知d的“l(fā)zl工e I ii;IWR I- . 錯誤情況:思考題1. 如何在已有的類的基礎(chǔ)上設(shè)計新的類?派生一個新的類。2. 基類和派生類對象的構(gòu)造順序是怎樣的?先調(diào)用基類的構(gòu)造函數(shù)在調(diào)用派生類的構(gòu)造函數(shù)。

溫馨提示

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

評論

0/150

提交評論