下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——C程序設(shè)計基礎(chǔ)課后答案第八章8.1閱讀以下程序,寫出執(zhí)行結(jié)果
1.#includeclassBclass{public:
Bclass(inti,intj){x=i;y=j;}virtualintfun(){return0;}protected:intx,y;};
classIclass:publicBclass{public:
Iclass(inti,intj,intk):Bclass(i,j){z=k;}intfun(){return(x+y+z)/3;}private:intz;};
voidmain()
{Iclassobj(2,4,10);Bclassp1=obj;
coutfun()classBase{public:
virtualvoidgetxy(inti,intj=0){x=i;y=j;}virtualvoidfun()=0;protected:intx,y;};
classA:publicBase{public:voidfun()
{coutgetxy(10);pb->fun();pb=
pb->getxy(100,20);pb->fun();}
8.2思考題
1.在C++中,使用類體系依靠什么機(jī)制實(shí)現(xiàn)程序運(yùn)行時的多態(tài)?
2.假使一個基類的虛函數(shù)被聲明為私有成員函數(shù),會有語法錯誤嗎?可以在應(yīng)用類體系時實(shí)現(xiàn)動態(tài)聯(lián)編嗎?請你驗證一下。
3.虛函數(shù)和純虛函數(shù)的區(qū)別是什么?
4.一個非抽象類的派生類是否可以為抽象類?利用例8-11進(jìn)行驗證,從Hex_type類派生一個Hex_format類,其中包含一個純虛函數(shù)Show_format(),然后定義Hex_format的派生類實(shí)現(xiàn)Show_format()。
1.在C++中,使用類體系依靠什么機(jī)制實(shí)現(xiàn)程序運(yùn)行時的多態(tài)?
在C++中,基類指針可以指向派生類對象,以及基類中擁有虛函數(shù),是支持多態(tài)性的前提。程序通過用同一個基類指針訪問不同派生類的虛函數(shù)重載版本實(shí)現(xiàn)程序運(yùn)行時的多態(tài)。C++的虛特性負(fù)責(zé)自動地在程
序運(yùn)行時把基類指針的關(guān)聯(lián)類型轉(zhuǎn)換成當(dāng)前指向?qū)ο蟮呐缮愵愋汀?/p>
另外,抽象類機(jī)制提供了軟件抽象和可擴(kuò)展性的手段,實(shí)現(xiàn)運(yùn)行時的多態(tài)性。
2.假使一個類的虛函數(shù)被聲明為私有成員函數(shù),會有語法錯誤嗎?當(dāng)它作為基類時,可以在應(yīng)用類體系時實(shí)現(xiàn)動態(tài)聯(lián)編嗎?請你驗證一下。
沒有語法錯誤。但在應(yīng)用類體系時無法實(shí)現(xiàn)動態(tài)編聯(lián)和多態(tài)。由于私有成員函數(shù)只在類內(nèi)可見,在類外無法調(diào)用,無法在類外通過基類指針實(shí)現(xiàn)多態(tài)。程序略。
3.虛函數(shù)和純虛函數(shù)的區(qū)別是什么?
虛函數(shù)定義時冠以關(guān)鍵字virtual,本身有實(shí)現(xiàn)代碼,作用是引導(dǎo)基類指針根據(jù)指向?qū)ο笳{(diào)用類體系中不同重載版本函數(shù)。
純虛函數(shù)是指在說明時代碼“為0〞的虛函數(shù),即純虛函數(shù)本身并沒有實(shí)現(xiàn)代碼,必需通過它的派生類定義實(shí)現(xiàn)版本。
4.一個非抽象類的派生類是否可以為抽象類?利用例9-11進(jìn)行驗證,從Hex_type類派生一個Hex_format類,其中包含一個純虛函數(shù)Show_format,然后定義Hex_format的派生類定義實(shí)現(xiàn)Show_format。
一個非抽象類的派生類可以為抽象類,即在派生類中定義了純虛函數(shù)。程序略。
8.3編程題
1.使用虛函數(shù)編寫程序求球體和圓柱體的體積及表面積。由于球體和圓柱體都可以看作由圓繼承而來,所以可以定義圓類Circle作為基類。在Circle類中定義一個數(shù)據(jù)成員radius和兩個虛函數(shù)area()和volume()。由Circle類派生Sphere類和Column類。在派生類中對虛函數(shù)area()和volume()重新定義,分別求球體和圓柱體的體積及表面積。
答案8.3-1
#includeconstdoublePI=3.14159265;classcircle{public:
circle(doubler){radius=r;}virtualdoublearea(){return0.0;}virtualdoublevolume(){return0.0;}protected:doubleradius;};
classsphere:publiccircle{public:
sphere(doubler):circle(r){}
doublearea(){return4.0*PI*radius*radius;}doublevolume()
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版消防電梯及消防水池建設(shè)施工合同3篇
- 變電所設(shè)備拆除施工方案
- 山西庭院成品泳池施工方案
- 青島墻體垂直綠化施工方案
- 二零二五年度新能源電動汽車銷售合作協(xié)議4篇
- 玻璃幕墻改開窗施工方案
- 汽車租賃合同樣本
- 泰州沸石壓花地坪施工方案
- 二零二五版城市綜合體物業(yè)保潔與夜間經(jīng)濟(jì)服務(wù)合同3篇
- 工程協(xié)議書模板年
- 2025年中國黃芪提取物市場調(diào)查研究報告
- 安徽省定遠(yuǎn)重點(diǎn)中學(xué)2024-2025學(xué)年第一學(xué)期高二物理期末考試(含答案)
- 教育教學(xué)質(zhì)量經(jīng)驗交流會上校長講話:聚焦課堂關(guān)注個體全面提升教育教學(xué)質(zhì)量
- 2024人教新目標(biāo)(Go for it)八年級英語上冊【第1-10單元】全冊 知識點(diǎn)總結(jié)
- 劇本殺店長合同范例
- 華中師范大學(xué)第一附中2025屆高考仿真模擬數(shù)學(xué)試卷含解析
- 七年級英語閱讀理解55篇(含答案)
- 臨床常見操作-灌腸
- 機(jī)械點(diǎn)檢員職業(yè)技能知識考試題庫與答案(900題)
- 成熙高級英語聽力腳本
- 縮窄性心包炎課件
評論
0/150
提交評論