第八章問(wèn)題多態(tài)性、運(yùn)算符重載、純虛函數(shù)、抽象類(lèi).doc_第1頁(yè)
第八章問(wèn)題多態(tài)性、運(yùn)算符重載、純虛函數(shù)、抽象類(lèi).doc_第2頁(yè)
第八章問(wèn)題多態(tài)性、運(yùn)算符重載、純虛函數(shù)、抽象類(lèi).doc_第3頁(yè)
第八章問(wèn)題多態(tài)性、運(yùn)算符重載、純虛函數(shù)、抽象類(lèi).doc_第4頁(yè)
第八章問(wèn)題多態(tài)性、運(yùn)算符重載、純虛函數(shù)、抽象類(lèi).doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

多態(tài)性、運(yùn)算符重載、純虛函數(shù)、抽象類(lèi)83 練習(xí)題 1什么是多態(tài)性?為什么說(shuō)它是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)重要機(jī)制? 2函數(shù)重載的含義是什么?定義重載函數(shù)時(shí)應(yīng)注意些什么問(wèn)題? 3運(yùn)算符重載的含義是什么?是否所有的運(yùn)算符都可以重載? 4運(yùn)算符重載有哪兩種形式?這兩種形式有何區(qū)別? 5運(yùn)算符重載函數(shù)使用關(guān)鍵字con st說(shuō)明后,是指什么不可改變? 6靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編的區(qū)別是什么? 7什么是虛函數(shù)?為什么要定義虛函數(shù)?它與動(dòng)態(tài)聯(lián)編有何關(guān)系? 8什么是純虛函數(shù)?什么是抽象類(lèi)? 9虛析構(gòu)函數(shù)有什么作用? 10總結(jié)C+語(yǔ)言的多態(tài)性包含哪些內(nèi)容?84 作業(yè)題一、選擇填空對(duì)定義重載函數(shù)的下列要求中。( )是錯(cuò)誤的A要求參數(shù)的個(gè)數(shù)不同B要求參數(shù)中至少有一個(gè)類(lèi)型不同C要求參數(shù)個(gè)數(shù)相同時(shí)。參數(shù)類(lèi)型不同D要求函數(shù)的返回值不同2.下列函數(shù)中,( ) 不能重載。A成員函數(shù) B非成員函數(shù) C析構(gòu)函數(shù) D構(gòu)造函數(shù) 3下列對(duì)重載函數(shù)的描述中,( )是錯(cuò)誤的。 A重載函數(shù)中不允許使用默認(rèn)參數(shù) B重載函數(shù)中編譯系根據(jù)參數(shù)表進(jìn)行選擇 C不要使用重載函數(shù)來(lái)描述毫無(wú)相干的函數(shù) D構(gòu)造函數(shù)重載將會(huì)給初始化帶來(lái)多種方式 4下列運(yùn)算符中,( )運(yùn)算符不能重載。 A & B C : D new 5下列關(guān)于運(yùn)算符重載的描述中,( )是正確的。 A運(yùn)算符重載可以改變操作數(shù)的個(gè)數(shù) B運(yùn)算符重載可以改變優(yōu)先級(jí) C運(yùn)算符重載可以改變結(jié)合性 D運(yùn)算符重載不可以改變語(yǔ)法結(jié)構(gòu)。 6運(yùn)算符重載函數(shù)是( )。 A成員函數(shù) B友元函數(shù) C內(nèi)聯(lián)函數(shù) D帶默認(rèn)參數(shù)的函數(shù) 7關(guān)于動(dòng)態(tài)聯(lián)編的下列描述中,( )是錯(cuò)誤的。 A動(dòng)態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ)的 B動(dòng)態(tài)聯(lián)編是在運(yùn)行時(shí)確定所調(diào)用的函數(shù)代碼的 C動(dòng)態(tài)聯(lián)編調(diào)用函數(shù)操作是用指向?qū)ο蟮闹羔樆驅(qū)ο笠?D動(dòng)態(tài)聯(lián)編是在編譯時(shí)確定操作函數(shù)的 8關(guān)于虛函數(shù)的描述中,( )是正確的。 A虛函數(shù)是一個(gè)static類(lèi)型的成員函數(shù) B虛函數(shù)是一個(gè)非成員函數(shù) C基類(lèi)中說(shuō)明了虛函數(shù)后,派生類(lèi)中將其對(duì)應(yīng)的函數(shù)可不必說(shuō)明為虛函數(shù)D.派生類(lèi)的虛函數(shù)與基類(lèi)的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)和類(lèi)型9關(guān)于純虛函數(shù)和抽象類(lèi)的描述中,( )是錯(cuò)誤的。 A純虛函數(shù)是一種特殊的虛函數(shù),它沒(méi)有具體的實(shí)現(xiàn) B抽象類(lèi)是指具有純虛函數(shù)的類(lèi) C一個(gè)基類(lèi)中說(shuō)明有純虛函數(shù),該基類(lèi)的派生類(lèi)一定不再是抽象類(lèi) D抽象類(lèi)只能作為基類(lèi)來(lái)使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類(lèi)給出 10下列描述中,( )是抽象類(lèi)的特性。 A可以說(shuō)明虛函數(shù) B可以進(jìn)行構(gòu)造函數(shù)重載 C可以定義友元函數(shù) D不能說(shuō)明其對(duì)象 二、判斷下列描述的正確性,對(duì)者劃,錯(cuò)者劃1函數(shù)的參數(shù)個(gè)數(shù)和類(lèi)型都相同,只是返回值不同,這不是重載函數(shù)。2重載函數(shù)可以帶有默認(rèn)值參數(shù),但是要注意二義性。3多數(shù)運(yùn)算符可以重載,個(gè)別運(yùn)算符不能重載,運(yùn)算符重載是通過(guò)函數(shù)完現(xiàn)的。4對(duì)每個(gè)可重載的運(yùn)算符來(lái)講,它既可以重載為友元函數(shù),又可以重載為成員函數(shù),還可以重載為非成員函數(shù)。5對(duì)單目運(yùn)算符重載為友元函數(shù)時(shí),說(shuō)明一個(gè)形參;重載為成員函數(shù)時(shí),j式說(shuō)明形參。6重載運(yùn)算符保持原運(yùn)算符的優(yōu)先級(jí)和結(jié)合性不變。7虛函數(shù)是用virtual關(guān)鍵字說(shuō)明的成員函數(shù)。8構(gòu)造函數(shù)說(shuō)明為純虛函數(shù)是沒(méi)有意義的。9抽象類(lèi)是指一些沒(méi)有說(shuō)明對(duì)象的類(lèi)。10動(dòng)態(tài)聯(lián)編是在運(yùn)行時(shí)選定調(diào)用的成員函數(shù)的。 三、分析下列程序的輸出結(jié)果 1 #includeinostram.h class Bpublic: B(int i)b=i+50; show(); B()Virtual void show( ) cout”B:show()called”bendl;Protected: int b:class D:public BPublic: D(int i):B(t) di十100;show(); D() void show()cout”DC:show(0 called.”dendl;protected:int d:; void main() D d1(108); 分析: 該程序中定義了B類(lèi)和D類(lèi)兩個(gè)類(lèi)。其中,D類(lèi)是公有繼承B類(lèi)的派生類(lèi)。在主函數(shù)中,僅創(chuàng)建一個(gè)D類(lèi)對(duì)象d1,于是調(diào)用D類(lèi)的構(gòu)造函數(shù),先調(diào)用基類(lèi)B的構(gòu)造函數(shù),給數(shù)據(jù)成員b初始化,又調(diào)用B類(lèi)的show()函數(shù),輸出顯示如下信息。 B:show(0 called.158接著執(zhí)行派生類(lèi)D的構(gòu)造函數(shù)體,給數(shù)據(jù)成員d初始化,又調(diào)用D類(lèi)的show()函數(shù),輸出顯示如下信息。 D:show(0 called.208 請(qǐng)讀者思考。將B類(lèi)中show()函數(shù)說(shuō)明為virtual函數(shù)時(shí),輸出結(jié)果會(huì)有變化嗎?再將D類(lèi)繼承B類(lèi)的方式改為私有,輸出結(jié)果會(huì)有變化嗎?為什么?2#include class B public: B() B(int i)b=i;Virtual void virfun( )cout”B:virfun()calledn”;private: int b;class D:public B public: D() D(int i,int j):B(i)dj;) Prtvate: int d; void virfun()cout”D:virfun()calledn”;;void fun(B*obj)obj一virfun();void main() D * pdnew D;fun(pd); 分析: 該程序中,定義了派生類(lèi)D公有繼承基類(lèi)B,基類(lèi)B中說(shuō)明了非靜態(tài)成員函數(shù)virfun()為虛函數(shù)在派生類(lèi)D中對(duì)它進(jìn)行了重新定義。在一般函數(shù)fun()中,通過(guò)對(duì)象指針來(lái)調(diào)用虛函數(shù),于是實(shí)現(xiàn)了動(dòng)態(tài)聯(lián)編,輸出顯示上述結(jié)果。 請(qǐng)讀者思考下列問(wèn)題。 (1)將一般函數(shù)fun()的形參改為D類(lèi)的對(duì)象,并做相應(yīng)修改后,輸出結(jié)果會(huì)改變嗎?為什么? (2)僅將B類(lèi)中virfun()函數(shù)前邊virtual關(guān)鍵字去掉,其余不變,輸出結(jié)果會(huì)改變嗎?為什么? (3)僅將D類(lèi)繼承B類(lèi)的方式改為私有,其余不變,編譯該程序時(shí)會(huì)出現(xiàn)什么錯(cuò)誤?為什么? 3 材includeiostream。hClass A public: A()verA; void print() cout”The A version”verendl; protected:Char ver;class D1:public A public:D1(int number) infonumber; ver=1;void print()cout”The D1 info:”info”version”verendl; private: int info;class D2:public A public: D2(int number) infonumber; void print( ) cout”The D2 info:”info”version”verendI; private:int info;class D3:public D1 publjc:D3(int number):D1(number) info:number;ver=3; void print() cout”The D3 info :”info”version”verendl; prnvate: int info;void Print_info(A *p) p一print();void main() A a; D1 d1(4); D2 d2(100); D3 d3(一25); print_info(&a); print_info(&d1); print_info(d2); print_info(& d3); 分析: 該程序中,定義一個(gè)基類(lèi)A,又定義兩個(gè)派生類(lèi)D1和D2,它們公有繼承基類(lèi)A.又定義一個(gè)派生類(lèi)D3,它公有繼承Dl類(lèi)。定義一個(gè)一般函數(shù)羅print_info(),它的形參是指向?qū)ο蟮闹羔?。主函?shù)中定義了4個(gè)類(lèi)的4個(gè)對(duì)象,并用它們的地址值

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論