




免費預(yù)覽已結(jié)束,剩余4頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C+程序?qū)嶒瀳蟾鎸嶒炍?繼承與派生實驗?zāi)康?1.學(xué)習(xí)定義和使用類的繼承關(guān)系,定義派生類 2.熟悉不同繼承方式下對基類成員的訪問控制 3.學(xué)習(xí)利用虛基類解決二義性問題 實驗要求 1.定義一個基類Animal,有私有整型成員變量age,構(gòu)造其派生類dog,在其成員函數(shù)SetAge(int n)中直接給age賦值,看看會有什么問題,把age改為公有成員變量,還會有問題嗎?編程嘗試。 2.定義一個基類BaseClass,有整型變量Number,構(gòu)造其派生類DerivedClass,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。3.定義一個車(vehicle)基類,具有Maxspeed、Weight等成員,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(int n)中直接對age賦值時,會出現(xiàn)類似以下的錯誤提示: error C2248 : age : cannot access private member declared in class Animal error C2248 : age : cannot access private member declared in class Animal 把age改為公有成員變量后重新編譯就可以了。程序名:lab7_1.cpp。 錯誤代碼:#includeusing namespace std;class Animalprivate:int age;public:Animal();class dog:public Animalpublic:void SetAge(int n)age=n;int main()dog one;one.SetAge(23);return 0;運行結(jié)果:正確代碼:#includeusing namespace std;class Animalpublic:int age;public:Animal();class dog:public Animalpublic:void SetAge(int n)age=n;int main()dog one;one.SetAge(23);return 0;運行結(jié)果:2.編寫程序定義一個基類BaseClass,構(gòu)造其派生類DerivedClass,在構(gòu)造函數(shù)和析構(gòu)函數(shù)中用cout輸出提示信息,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。程序名:lab7_2.cpp。 源代碼:#includeusing namespace 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 BaseClassprivate:int b;public:DerivedClass()cout派生類構(gòu)造函數(shù)調(diào)用endl;DerivedClass()cout派生類析構(gòu)函數(shù)調(diào)用endl;int main()DerivedClass one; return 0;運行結(jié)果:3.用debug功能跟蹤程序lab7_2的執(zhí)行過程,觀察基類和派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。 DEBUG:4.編寫程序定義一個車(vehicle)基類,由此派生出自行車(bicycle)類、汽車(motorcar)類,注意把vehicle派生為虛基類。再從bicycle和motorcar派生出摩托車(motorcycle)類,在main()函數(shù)中測試這個類。程序名:lab7_3.cpp。 編譯成功后,把vehicle設(shè)置為非虛基類,再編譯一次,此時系統(tǒng)報錯,無法編譯成功。這是因為若不把vehicle設(shè)置為虛基類,會出現(xiàn)二義性錯誤,程序不能成功編譯。源代碼:#includeusing namespace std;class Vehiclepublic:Vehicle();int a;void set()coutVehicle調(diào)用endl;class Mortorcar:virtual public Vehiclepublic:Mortorcar();int b;void set()coutMortorcar調(diào)用endl;class Bicycle:virtual public Vehiclepublic:Bicycle();int c;void set()coutBicycle調(diào)用endl;class Mortorcycle:public Mortorcar,public Bicyclepublic:Mortorcycle();int d;void set()coutMortorcycle調(diào)用endl;int main()Mortorcycle one;one.a =1;one.b=2;one.set();return 0;運行結(jié)果:錯誤情況:思考題 1. 如何在已有的類的基礎(chǔ)上設(shè)計新的類?派生一個新的類。2. 基類和派生類對象的構(gòu)造順序是怎
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品差異化與供應(yīng)鏈金融創(chuàng)新考核試卷
- 體育會展項目融資工具創(chuàng)新考核試卷
- 電氣系統(tǒng)維護考核試卷
- 人工智能在罕見內(nèi)分泌疾病診斷中的多模態(tài)數(shù)據(jù)應(yīng)用考核試卷
- 供應(yīng)鏈金融創(chuàng)新服務(wù)考核試卷
- 傳動部件的動態(tài)性能仿真分析考核試卷
- 2025年中國PVC便箋盒數(shù)據(jù)監(jiān)測研究報告
- 2025年中國FR挾口杯數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國面罩市場分析及競爭策略研究報告
- 2025至2030年中國鋁研磨面板材市場分析及競爭策略研究報告
- 第五單元 第5節(jié) 跨學(xué)科實踐:制作望遠鏡 教學(xué)設(shè)計-2024-2025學(xué)年人教版物理八年級上冊
- 2022-2023學(xué)年湖南省岳陽市城區(qū)人教版六年級下冊期末測試數(shù)學(xué)試卷(原卷版+解析)
- 電動公交車充電設(shè)施建設(shè)與運營模式
- 2023年湖南省普通高等學(xué)校對口招生考試語文題
- 人工智能算法開發(fā)合作合同
- 和合文化與國際傳播
- 客服主管崗位周工作計劃
- 煤礦急救知識培訓(xùn)課件
- 高速公路路產(chǎn)賠(補)償收費標(biāo)準(zhǔn)表
- 壓接端子檢驗標(biāo)準(zhǔn)
- 雙方關(guān)于2024年度地鐵車輛采購及維護合同2篇
評論
0/150
提交評論