




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C+作業(yè)題(8)一選擇填空(1) 定義重載函數(shù)的下列條件中,(C )是錯(cuò)誤的。A. 要求參數(shù)個(gè)數(shù)不同B. 要求參數(shù)類型不同C. 要求函數(shù)返回值類型不同D. 要求在參數(shù)個(gè)數(shù)相同時(shí),參數(shù)類型的順序不同(2) 關(guān)于下列虛函數(shù)的描述中,( C)是正確的。A. 虛函數(shù)是一個(gè)static存儲(chǔ)類的成員函數(shù)B. 虛函數(shù)是一個(gè)非成員函數(shù)C. 基類中說明了虛函數(shù)后,派生類中可不必將對(duì)應(yīng)的函數(shù)說明為虛函數(shù)D. 派生類的虛函數(shù)與基類的虛函數(shù)應(yīng)具有不同的類型或個(gè)數(shù)(3) 關(guān)于純虛函數(shù)和抽象類的描述中,(C )是錯(cuò)誤的。A. 純虛數(shù)是一種特殊的虛函數(shù),它沒有具體實(shí)現(xiàn) B. 抽象類中一定具有一個(gè)或多個(gè)純虛函數(shù)C. 抽象類的派生類中一定不會(huì)再有純虛函數(shù)D. 抽象類一般作為基類使用,使純虛函數(shù)的實(shí)現(xiàn)由其派生類給出(4) 以下一種類中,( A)不能建立對(duì)象。A. 抽象類 B. 派生類 C. 虛基類 D. 基類(5)下列函數(shù)中不能重載的是( C )。A)成員函數(shù) B)非成員函數(shù) C)析構(gòu)函數(shù) D)構(gòu)造函數(shù)(6)下列描述中,抽象類的特征有( D )。A)可以說明虛函數(shù) B)可以構(gòu)造函數(shù)重載 C)可以定義友員函數(shù) D)不能說明其對(duì)象(7)下列不屬于動(dòng)態(tài)聯(lián)編實(shí)現(xiàn)的條件有( D )。A)要有說明的虛函數(shù)。B)調(diào)用虛函數(shù)的操作是指向?qū)ο蟮闹羔樆蛘邔?duì)象引用:或者是由成員函數(shù)調(diào)用虛函數(shù)。C)子類型關(guān)系的確立。D)在構(gòu)造函數(shù)中調(diào)用虛函數(shù)。(8)派生類中對(duì)基類的虛函數(shù)進(jìn)行替換時(shí),派生類中說明的虛函數(shù)與基類中的被替換的虛函數(shù)之間不要求滿足的是( C )。A)與基類的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)。B)其參數(shù)的類型與基類的虛函數(shù)的對(duì)應(yīng)參數(shù)類型相同。C)基類必須定義純虛函數(shù)。D)其返回值或者與基類的虛函數(shù)相同,或者都返回指針或引用,并且派生類虛函數(shù)所返回的指針或引用的基類型是基類中被替換的虛函數(shù)所返回的指針或引用的基類的子類型。(9)下列關(guān)于抽象類說法正確的是:( B )A)抽象類處于繼承類層次結(jié)構(gòu)的較下層。 B)抽象類刻畫了一組子類的操作通用接口。C)抽象類可以作為類直接使用。 D)抽象類可以直接定義對(duì)象。(10)下列關(guān)于虛析構(gòu)函數(shù)說法不正確的是( B )。A)在析構(gòu)函數(shù)前加上關(guān)鍵字virtual,就說明了虛析構(gòu)函數(shù)。B)如果一個(gè)基類的析構(gòu)函數(shù)說明為虛析構(gòu)函數(shù),則它的派生類中的析構(gòu)函數(shù)須用virtual關(guān)鍵字說明后才是虛析構(gòu)函數(shù)。C)說明虛析構(gòu)函數(shù)的目的在于使用delete刪除一個(gè)對(duì)象時(shí),能保證析構(gòu)函數(shù)被正確地執(zhí)行。D)設(shè)置虛函數(shù)后,可以采用動(dòng)態(tài)聯(lián)編的方式選擇析構(gòu)函數(shù)。(11)編譯時(shí)多態(tài)性通過使用( B )獲得。A)繼承 B)虛函數(shù) C)重載函數(shù) D)析構(gòu)函數(shù)(12)可以使用( A )來阻止基類的成員函數(shù)調(diào)用派生類中的虛函數(shù)。A)成員名限定 B)指針 C)引用 D)關(guān)鍵字virtual(13)抽象類應(yīng)該含有( D )。A)至多一個(gè)虛函數(shù) B)至多一個(gè)虛函數(shù)是純虛函數(shù) C)至少一個(gè)虛函數(shù) D)至少一個(gè)虛函數(shù)是純虛函數(shù)(14)一個(gè)抽象類可以說明為( A )。A)指向抽象類對(duì)象的指針 B)類成員數(shù)據(jù) C)抽象類的對(duì)象 D)數(shù)組元素(15)對(duì)于抽象類的使用需要注意的地方,下列不正確的說法是:( C )A)抽象類只能用作其它類的基類,不能建立抽象類對(duì)象。B)抽象類不能用作參數(shù)類型,函數(shù)返回類型或顯式轉(zhuǎn)換的類型。C)定義抽象類時(shí)至少要定義一個(gè)虛函數(shù)。D)可以說明指向抽象類的指針和引用,此指針可以指向它的派生類,進(jìn)而可以實(shí)現(xiàn)多態(tài)性。(16)關(guān)于動(dòng)態(tài)聯(lián)編的說法,下列哪個(gè)不正確?( C )A)動(dòng)態(tài)聯(lián)編只能通過指針或引用標(biāo)識(shí)對(duì)象來操作虛函數(shù)。B)C+使用虛函數(shù)來指定哪些函數(shù)需要用動(dòng)態(tài)聯(lián)編方式處理。C)動(dòng)態(tài)聯(lián)編不能實(shí)現(xiàn)靜態(tài)類型檢查。D)動(dòng)態(tài)聯(lián)編能夠在運(yùn)行時(shí)根據(jù)其類型確認(rèn)調(diào)用哪個(gè)函數(shù)。(17)將一個(gè)類的成員函數(shù)盡可能地設(shè)置成虛函數(shù)總是有益的,下列設(shè)置虛函數(shù)必須注意的情況中,哪個(gè)是錯(cuò)誤的?( D )A)只有類的成員函數(shù)才能說明為虛函數(shù)。 B)靜態(tài)成員函數(shù)不能是虛函數(shù)。C)構(gòu)造函數(shù)不能是虛函數(shù)。 D)析構(gòu)函數(shù)不能是虛函數(shù)。(18)在派生類中重新定義虛函數(shù)時(shí)必須在( A )方面與基類保持一致。A)參數(shù)個(gè)數(shù) B)賦值 C)參數(shù)名字 D)操作內(nèi)容(19)以下哪個(gè)基類中的成員函數(shù)表示純虛函數(shù)( C )。A)virtual void vf(int) B)void vf(int)=0; C)virtual void vf( )=0 D)virtual void vf(int)(20)通過一個(gè)對(duì)象調(diào)用虛函數(shù)時(shí),C+系統(tǒng)對(duì)該調(diào)用采用( B )。A)動(dòng)態(tài)聯(lián)編 B)靜態(tài)聯(lián)編 C)不確定是哪種聯(lián)編 D) 函數(shù)重載參考答案:CCCAC DDCBB BADAC CDACB二判斷正誤(1) 函數(shù)參數(shù)個(gè)數(shù)和類型都相同,只是返回值類型不同,這不是重載函數(shù)。( )(2)虛函數(shù)是為實(shí)現(xiàn)某種功能而假設(shè)的函數(shù),派生類的虛函數(shù)定義影響其基類,而基類的虛函數(shù)定義不影響其派生類。( )(3)可以在類的內(nèi)部說明虛函數(shù),這時(shí)就可以定義一個(gè)虛的內(nèi)聯(lián)函數(shù)。( )(4)空的虛函數(shù)與純虛函數(shù)都沒有函數(shù)體,因此空的虛函數(shù)與純虛函數(shù)在概念上是一樣的,只是叫法不一樣。( )(5)只要基類的析構(gòu)函數(shù)被說明為虛函數(shù),則派生類的析構(gòu)函數(shù),無論是否使用virtual進(jìn)行說明,都自動(dòng)地成為虛構(gòu)函數(shù)。( )(6)虛函數(shù)是一種virtual說明的成員函數(shù)。( )(7)抽象類中只能有一個(gè)純虛函數(shù)。( )(8)析構(gòu)函數(shù)不能說明為虛函數(shù)。( )(9)程序中可以說明抽象類的指針或引用,但是不能說明抽象類的對(duì)象。( ) 參考答案:三分析程序運(yùn)行結(jié)果1#includeclass base public:base(void)fc();virtual void fc(void)coutIn class baseendl;virtual base()=0coutDestructing base object.endl;class A:public basepublic:A(void)fc(); void f(void)fc();A(void)fd();void fd(void)coutDestructor A object.endl;class B:public Apublic: B(void);void fc(void)coutIn class B endl;B(void)fc();void fd(void)coutDestructor B objectendl;void main(void) B b; /*由于B類是A類的子類,A類是base類的子類,所以先調(diào)用base類的構(gòu)造函數(shù),再調(diào)用A類和B類的構(gòu)造函數(shù)*/coutendl;b.fc(); /動(dòng)態(tài)聯(lián)編,調(diào)用B類的fc()函數(shù)coutendl;base *p=new A; /先調(diào)用base類構(gòu)造函數(shù),再調(diào)用A類的構(gòu)造函數(shù)delete p; /先調(diào)用A類的析構(gòu)函數(shù),再調(diào)用base類的析構(gòu)函數(shù)coutendl;/釋放對(duì)象 b 所占有的空間,分別調(diào)用 B A base類的析構(gòu)函數(shù) 參考答案:In class baseIn class baseIn class BIn class baseIn class baseDestructor A object.Destructing base object.In class BDestructor A object.Destructing base object.(2)#includeclass C;class Apublic : int a;A(int i)a=i;virtual void printOn(C&); ;class B:public A public: int b;B(int i,int j):A(i)b=j;virtual void printOn(C&); ;class Cfriend void A:printOn(C&);friend void B:printOn(C&);int a,b,c;public:C(int i,int j,int k)a=i;b=j;c=k; ;void A:printOn(C& t) coutClass A member a=a endl;coutClass C member c=t.c endl; void B:printOn(C& t) coutClass B member b=b endl;coutClass C member c=t.cprintOn(c);p=&b;p-printOn(c); 參考答案:Class A member a=10Class C member c=30Class B member b=20Class C member c=30(3)#includeclass basepublic:virtual void a()couta() in basen;virtual void b()coutb() in basen;virtual void c()coutc() in basen;virtual void d()coutd() in basen;virtual void e()coute() in basen;virtual void f()coutf() in basen;class A:public basepublic:virtual void a()couta() in An;virtual void b()coutb() in An;virtual void f()coutf() in An;class B:public base public:virtual void a()couta() in Bn;virtual void b()coutb() in Bn;virtual void c()coutc() in Bn;class C:public A,public B public:virtual void a()couta() in Cn;virtual void d()couta(); /C類中有a(),調(diào)用pa-b(); /C類中沒有b(),從其基類中尋找,先從A類中找,有則調(diào)用,無有則從B類中尋找pa-c(); /C類中沒有c(),從其基類A和B中尋找,先從A類及其基類中找,有則調(diào)用;若無,則從B類及其基類中尋并調(diào)用pa-d(); /C類中有d(),調(diào)用pa-e(); /C類中沒有e(),先從A類及其基類base中尋找,從base中找到,調(diào)用pa-f(); /C類中沒有f(),先從A類及其基類base中尋找,在A類中找到并調(diào)用/考查內(nèi)容:多態(tài)性,指向基類對(duì)象的指針可以指向其子類對(duì)象/ 這種指針調(diào)用函數(shù)時(shí)先從子類中尋找,如果有則調(diào)用,如果沒有則從基類中尋找參考答案:a() in Cb() in Ac() in based() in Ce() in basef() in A(4)#include#includeclass Apublic: A()virtual void func( )coutConstructing Aendl;A( )virtual void fund( )coutDestructor Aendl; ;class B:public Apublic :B( )func();virtual void func()coutConstructing Bendl; void fun( )func();B()fund(); ;class C: public Bpublic: C( )void func()coutClass Cendl;C()fund();void fund( )coutDestructor Cendl; ;void main()C c; /分別調(diào)用A B C類的構(gòu)造函數(shù)c.fun(); /先從C類中查找,沒有則從其直接基類B中查找,找到并調(diào)用/構(gòu)造函數(shù)調(diào)用函數(shù) C B A參考答案:Constructing BClass CDestructor CDestructor A (5) #include #include class base char *p;public: base(int sz, char *bptr)p = new char sz;strcpy( p, bptr);coutconstructor baseendl; virtual base() delete p; cout destructor basen; ;class derive: public base char *pp;public:derive(int sz1, int sz2, char *bp,char *dptr) : base(sz1, bp)pp = new char sz2;strcpy( pp, dptr);coutconstructor deriveendl;derive() delete pp;cout destructor deriven;void main() base *px=new derive(5,7,base, derive);delete px;參考答案:constructor baseconstructor derivedestructor derivedestructor base四指出下列程序中的錯(cuò)誤#include class Apublic:virtual void f1() coutA:f1()endl; virtual void f2()coutA:f2()endl;struct B: Avoid f1()coutB:f1()en
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小小科學(xué)家試題及答案
- 育嬰師怎樣提高溝通技巧與家長的合作關(guān)系試題及答案
- 育嬰師多元文化教育試題及答案
- 雜志性格測試題及答案
- 教師資格考試的情感支持與心理輔導(dǎo)能力試題及答案
- 禁止飲酒面試題及答案
- 營養(yǎng)診斷在臨床中的實(shí)施方案試題及答案
- 法律風(fēng)險(xiǎn)防控試題及答案
- 藥檢方法與技術(shù)分析試題及答案
- 護(hù)士資格證考試心理衛(wèi)生的重要性試題及答案
- 無菌技術(shù)的護(hù)理課件
- 糖尿病科普教育的社交媒體推廣-洞察分析
- 自動(dòng)噴水滅火系統(tǒng)的工作原理和應(yīng)用
- 汽車維修場所安全管理協(xié)議書
- 氣候風(fēng)險(xiǎn)與企業(yè)綠色創(chuàng)新
- 《廣西壯族自治區(qū)房屋建筑和市政基礎(chǔ)設(shè)施工程質(zhì)量安全手冊實(shí)施細(xì)則(試行)》
- 基礎(chǔ)醫(yī)學(xué)題庫(含參考答案)
- 接觸網(wǎng)高空作業(yè)安全培訓(xùn)
- 砌體工程事故及事故分析
- 《改善患者就醫(yī)體驗(yàn)》課件
- 2024年中考語文試題分類匯編:非連續(xù)性文本閱讀(教師版)
評(píng)論
0/150
提交評(píng)論