




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大學(xué)虛擬函數(shù)題目及答案一、單項(xiàng)選擇題1.在C++中,以下哪個(gè)關(guān)鍵字用于聲明虛擬函數(shù)?A.staticB.virtualC.inlineD.abstract答案:B2.虛擬函數(shù)的主要作用是什么?A.用于實(shí)現(xiàn)多態(tài)B.用于實(shí)現(xiàn)繼承C.用于實(shí)現(xiàn)封裝D.用于實(shí)現(xiàn)重載答案:A3.在C++中,以下哪個(gè)函數(shù)不能被聲明為虛擬函數(shù)?A.構(gòu)造函數(shù)B.析構(gòu)函數(shù)C.私有成員函數(shù)D.公共成員函數(shù)答案:C4.以下哪個(gè)選項(xiàng)是正確實(shí)現(xiàn)多態(tài)的方式?A.通過(guò)函數(shù)重載B.通過(guò)函數(shù)覆蓋C.通過(guò)函數(shù)重定義D.通過(guò)函數(shù)隱藏答案:B5.在C++中,以下哪個(gè)關(guān)鍵字用于聲明純虛函數(shù)?A.abstractB.virtualC.pureD.interface答案:C二、填空題1.在C++中,聲明虛擬函數(shù)的關(guān)鍵字是________。答案:virtual2.多態(tài)性允許我們使用基類指針或引用來(lái)調(diào)用________。答案:派生類中的函數(shù)3.純虛函數(shù)的聲明方式是在虛擬函數(shù)聲明的末尾加上________。答案:=04.析構(gòu)函數(shù)可以被聲明為_(kāi)_______函數(shù),以確保派生類對(duì)象的正確析構(gòu)。答案:虛擬5.在C++中,使用________關(guān)鍵字可以覆蓋基類中的虛擬函數(shù)。答案:override三、簡(jiǎn)答題1.描述C++中虛擬函數(shù)的工作原理。答案:在C++中,虛擬函數(shù)允許我們?cè)诨愔新暶饕粋€(gè)函數(shù),然后在派生類中重寫該函數(shù)。當(dāng)通過(guò)基類的指針或引用調(diào)用該函數(shù)時(shí),會(huì)根據(jù)對(duì)象的實(shí)際類型(派生類類型)來(lái)決定調(diào)用哪個(gè)版本的函數(shù),這就是多態(tài)的實(shí)現(xiàn)方式。虛擬函數(shù)的工作原理依賴于虛函數(shù)表(vtable),每個(gè)包含虛擬函數(shù)的類都有一個(gè)虛函數(shù)表,表中存儲(chǔ)了指向類中每個(gè)虛擬函數(shù)的指針。當(dāng)創(chuàng)建對(duì)象時(shí),對(duì)象的內(nèi)存布局中會(huì)包含一個(gè)指向該類虛函數(shù)表的指針。當(dāng)調(diào)用虛擬函數(shù)時(shí),編譯器會(huì)使用這個(gè)指針來(lái)查找正確的函數(shù)地址并調(diào)用。2.解釋為什么構(gòu)造函數(shù)不能被聲明為虛擬函數(shù)。答案:構(gòu)造函數(shù)的主要目的是初始化對(duì)象,它在對(duì)象創(chuàng)建時(shí)被調(diào)用。由于構(gòu)造函數(shù)在對(duì)象創(chuàng)建時(shí)就被調(diào)用,此時(shí)對(duì)象的類型尚未完全確定,因此無(wú)法確定應(yīng)該調(diào)用哪個(gè)派生類的構(gòu)造函數(shù)。此外,構(gòu)造函數(shù)不參與對(duì)象的析構(gòu)過(guò)程,因此不需要像析構(gòu)函數(shù)那樣提供多態(tài)性。因此,構(gòu)造函數(shù)不能被聲明為虛擬函數(shù)。四、編程題1.編寫一個(gè)C++程序,包含一個(gè)基類Shape和一個(gè)派生類Circle,其中Shape類包含一個(gè)虛擬函數(shù)area()用于計(jì)算面積,Circle類重寫該函數(shù)以計(jì)算圓的面積。```cppinclude<iostream>include<cmath>classShape{public:virtualdoublearea(){return0;}virtual~Shape(){}};classCircle:publicShape{private:doubleradius;public:Circle(doubler):radius(r){}doublearea()override{returnM_PIradiusradius;}};intmain(){Shapeshape1=newCircle(5.0);std::cout<<"AreaofCircle:"<<shape1->area()<<std::endl;deleteshape1;return0;}```2.編寫一個(gè)C++程序,包含一個(gè)基類Animal和一個(gè)派生類Dog,其中Animal類包含一個(gè)虛擬函數(shù)speak()用于模擬動(dòng)物的叫聲,Dog類重寫該函數(shù)以模擬狗的叫聲。```cppinclude<iostream>classAnimal{public:virtualvoidspeak(){std::cout<<"Animalsound"<<std::endl;}virtual~Animal(){}};classDog:publicAnimal{public:voidspeak()override{std::cout<<"Woof!Woof!"<<std::endl;}};intmain(){Animalanimal=newDog();
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 項(xiàng)目管理中的資源優(yōu)化配置
- 護(hù)理實(shí)踐中的病情監(jiān)測(cè)和急救處置
- 活力精力妝容 拋開(kāi)平凡的我與不一樣
- 護(hù)理干預(yù)策略
- 保險(xiǎn)公司政企活動(dòng)方案
- 保險(xiǎn)公司經(jīng)營(yíng)活動(dòng)方案
- 保險(xiǎn)公司迎新活動(dòng)方案
- 保險(xiǎn)文案活動(dòng)方案
- 保障基金宣傳月活動(dòng)方案
- 信念教育實(shí)踐活動(dòng)方案
- 病媒生物防治課件
- 中式臺(tái)球課件教學(xué)課件
- 外墻外保溫(石墨聚苯板)及裝修施工方案
- 中國(guó)重癥卒中管理指南2024解讀
- 石油化工PTA裝置生產(chǎn)過(guò)程危險(xiǎn)性分析
- 外架單項(xiàng)分包合同模板
- 中國(guó)工商銀行借款合同
- 《工程力學(xué)》教學(xué)大綱
- 中華傳統(tǒng)文化融入初中地理大概念單元教學(xué)的探究
- 部編版二年級(jí)語(yǔ)文下冊(cè)期末試卷及答案【新版】
- 浙教版八年級(jí)科學(xué)下冊(cè)思維導(dǎo)圖(全冊(cè))
評(píng)論
0/150
提交評(píng)論