習(xí)題10-運(yùn)算符重載與多態(tài)性_第1頁
習(xí)題10-運(yùn)算符重載與多態(tài)性_第2頁
習(xí)題10-運(yùn)算符重載與多態(tài)性_第3頁
習(xí)題10-運(yùn)算符重載與多態(tài)性_第4頁
習(xí)題10-運(yùn)算符重載與多態(tài)性_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、習(xí)題 10 運(yùn)算符重載與多態(tài)性、單項(xiàng)選擇題A、? :B、 C、 newD、&&2、下列運(yùn)算符不能用友元函數(shù)重載的是()。A、+B、 =C、 *D、<<3、在一個類中可以對一個操作符進(jìn)行()重載。A、1種B、 2 種以下C、 3 種以下D、多種4、友元運(yùn)算符 obj1>obj2 被 C+ 編譯器解釋為()。1、下列運(yùn)算符中,()運(yùn)算符在C+中不能重載。A 、 operator > (obj1, obj2)B、 > (obj1, obj2)C、 obj2.operator > (obj1)D、 obj1.operator > (obj2)5

2、、下列關(guān)于C+運(yùn)算符函數(shù)的返回類型的描述中,錯誤的是()。A、可以是類類型B、可以是int類型10C、可以是void類型D、可以是float類型6、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。A、運(yùn)算符重載可以改變運(yùn)算符的操作數(shù)的個數(shù)B、運(yùn)算符重載可以改變優(yōu)先級C、運(yùn)算符重載可以改變結(jié)合性D、運(yùn)算符重載不可以改變語法結(jié)構(gòu)7、下列關(guān)于動態(tài)聯(lián)編的描述中,錯誤的是()。A、動態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ)的B、動態(tài)聯(lián)編是在運(yùn)行時確定所調(diào)用的函數(shù)代碼的C、動態(tài)聯(lián)編調(diào)用函數(shù)操作是指向?qū)ο蟮闹羔樆驅(qū)ο笠肈、動態(tài)聯(lián)編是在編譯時確定操作函數(shù)的8、關(guān)于虛函數(shù)的描述中,正確的是()。A、虛函數(shù)是一個靜態(tài)成員函數(shù)B、虛函數(shù)

3、是一個非成員函數(shù)C、虛函數(shù)既可以在函數(shù)說明時定義,也可以在函數(shù)實(shí)現(xiàn)時定義D、派生類的虛函數(shù)與基類中對應(yīng)的虛函數(shù)具有相同的參數(shù)個數(shù)和類型9、對虛函數(shù)的調(diào)用()。A、定使用動態(tài)聯(lián)編B、必須使用動態(tài)聯(lián)編C、定使用靜態(tài)聯(lián)編D、不一定使用動態(tài)聯(lián)編10、編譯時的多態(tài)性可以通過使用()獲得。A、虛函數(shù)和指針B、重載函數(shù)和析構(gòu)函數(shù)D、虛函數(shù)和引用C、虛函數(shù)和對象11、實(shí)現(xiàn)運(yùn)行時的多態(tài)性要使用()。A、重載函數(shù)B、構(gòu)造函數(shù)C、析構(gòu)函數(shù)D、虛函數(shù)12、要實(shí)現(xiàn)動態(tài)聯(lián)編,必須通過()調(diào)用虛函數(shù)。A 、對象指針B、成員名限定C、對象名D、派生類名)方面,其他方面都必須與基類中相應(yīng)13、在派生類中重新定義虛函數(shù)時,除了(

4、的虛函數(shù)保持一致。A 、參數(shù)個數(shù)B、參數(shù)類型C、函數(shù)名稱D、函數(shù)體)。14、下面關(guān)于構(gòu)造函數(shù)和析構(gòu)函數(shù)的描述,錯誤的是(A、析構(gòu)函數(shù)中調(diào)用虛函數(shù)需用靜態(tài)聯(lián)編B、對虛析構(gòu)函數(shù)的調(diào)用可以采用動態(tài)聯(lián)編C、當(dāng)基類的析構(gòu)函數(shù)是虛函數(shù)時,其派生類的析構(gòu)函數(shù)也一定是虛函數(shù)D、構(gòu)造函數(shù)可以聲明為虛函數(shù)15、關(guān)于純虛函數(shù)和抽象類的描述中,錯誤的是()。A、純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實(shí)現(xiàn)B、抽象類是指具有純虛函數(shù)的類C、一個基類中說明有純虛函數(shù),該基類的派生類一定不再是抽象類D、抽象類只能作為基類來使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出16、下列描述中, ( )是抽象類的特性。A、可以說明虛函數(shù)B、可以

5、進(jìn)行構(gòu)造函數(shù)重載C、可以定義友元函數(shù)D、不能說明其對象17、()是一個在基類中說明的虛函數(shù),它在該基類中沒有定義但要求任何派生類都必須定義自己的版本。A、虛析構(gòu)函數(shù)B、虛構(gòu)造函數(shù)C、純虛函數(shù)D、靜態(tài)成員函數(shù))。18、如果一個類至少有一個純虛函數(shù),那么就稱該類為(C、派生類D、以上都不對A、抽象類B、虛基類19、以下()成員函數(shù)表示純虛函數(shù)。A 、 virtual int vf(int);B 、 void vf(int)=0;C、 virtual void vf()=0;20、下面的描述中正確的是(D 、 virtual voidvf(int) A、 virtual 可以用來聲明虛函數(shù))。B、含

6、有純虛函數(shù)的類是不可以用來創(chuàng)建對象的,因?yàn)樗翘摶怌、即使基類的構(gòu)造函數(shù)沒有參數(shù)派生類也必須建立構(gòu)造函數(shù)D、靜態(tài)數(shù)據(jù)成員可以通過成員初始化列表來初始化二、分析下列各程序的運(yùn)行結(jié)果1、源程序如下:#include<iostream>using namespace std;class Coordpublic:Coord(int i=0,int j=0) x=i; y=j;void Print() cout<<"x="<<x<<",y="<<y<<endl; friend Coord o

7、perator + (Coord op);private:int x,y;Coord operator +(Coord op)+op.x;+op.y;return op;int main()Coord obj(1,2);obj.Print();+obj;obj.Print();return 0;2、源程序如下:#include<iostream> using namespace std; class Vector public: Vector() Vector(int i,int j)x=i;y=j; friend Vector operator +=(Vector v1,Vect

8、or v2); Vector operator -=(Vector v); void display()cout<<"("<<x<<","<<y<<")"<<endl; private: int x,y;Vector operator +=(Vector v1,Vector v2)v1.x+=v2.x;v1.y+=v2.y;return v1;Vector Vector:operator -=(Vector v)Vector temp; temp.x=x-v.x;

9、 temp.y=y-v.y; return temp;int main()Vector v1(1,2),v2(3,4),v3,v4; v3=v1+=v2;v4=v1-=v2; cout<<"v1="v1.display(); cout<<"v2="v2.display(); cout<<"v3="v3.display(); cout<<"v4="v4.display();return 0;3、源程序如下:#include<iostream.h>#inclu

10、de<string.h>#include<stdlib.h>class Salespublic:void Init(char n) strcpy(name,n); int& operator (int sub);char *GetName() return name; private:char name25;int divisionTotals5;int& Sales:operator (int sub) if(sub<0|sub>4)cerr<<"Bad subscript!"<<sub<&

11、lt;" is not allowed."<<endl; abort();return divisionTotalssub;int main()int totalSales=0,avgSales;Sales company; company.Init("Swiss Cheese");company0=123;company1=456;company2=789;company3=234;company4=567;cout<<"Here are the sales for "<<company.GetN

12、ame()<<"'s division:"<<endl; for(int i=0;i<5;i+)cout<<companyi<<"t"for(i=0;i<5;i+) totalSales+=companyi;cout<<endl<<"The total sales are "<<totalSales<<endl; avgSales=totalSales/5;cout<<"The average sa

13、les are "<<avgSales<<endl; return 0;4、源程序如下:#include<iostream.h>class base public:virtual void fun1() cout<<"base fun1."<<endl; virtual void fun2() cout<<"base fun2."<<endl; void fun3() cout<<"base fun3."<<endl;

14、 void fun4() cout<<"base fun4."<<endl;class derived:public basevirtual void fun1() cout<<"derived fun1."<<endl;virtual void fun2(int x) cout<<"derived fun2."<<endl; virtual void fun3() cout<<"derived fun3."<<endl

15、; void fun4() cout<<"derived fun4."<<endl; ;int main()base *pb;derived d;pb=&d;pb->fun1();pb->fun2();pb->fun3();pb->fun4();return 0;5、源程序如下:#in clude<iostream.h>class B0public:virtual void dis play()=0;class B1: public B0public:void dis play() cout<<

16、"B1:dis play()"<<e ndl;class D1: public B1public:void dis play() cout<<"D1:dis play()"<<e ndl;void fun (B0 *ptr)p tr->dis play();int mai n()B0 *p;B1 b1;D1 d1;p=&b1;fun(p);p=& d1;fun(p);return 0;三、程序填空(請將最合適的語句填入各標(biāo)號處,使其成為一個完整、正確的程序1、下列程序定義了一實(shí)部為real,虛部為

17、imag的復(fù)數(shù)類Complex,并在類中重載了復(fù)數(shù)的+、-操作。請將下列程序補(bǔ)充完整.class Comp lexpublic:Comp lex (double r=0.0,double i=0.0) op erator + (Co mplex ); _ operator - (Complex , Complex );private:double real, imag;op erator + (Co mplex c)return CompI ex();op erator - (Co mplex c1, Comp lex c2) return Compl ex();2、下列程序的運(yùn)行結(jié)果如下:D

18、erivel's Prin t() called.b=1Derive2's Prin t() called.b=1 根據(jù)結(jié)果將程序補(bǔ)充完整。#in clude<iostream> using n ames pace std; class Base public:Base(i nt i) b=i; p rotected:int b;class Derived public Base public:void Prin t()cout<<"Derive1's Prin t() called.b="<<b<<e

19、 ndl;class Derive2: public Basepublic:void Prin t()cout<<"Derive2's Print() called.b="<<b<<e ndl;void fun( )obj-> Prin t();int mai n()fun (d1);fun (d2); return 0;3、將下列程序補(bǔ)充完整。#in clude<iostream>using n ames pace std;class convertpublic:con vert(double i) val1=

20、i; p rotected:double val1;double val2;/ "升”轉(zhuǎn)換成"加侖” liters to gallons class l_to_g:p ublic convertpublic:void compu te()val2=val1/3.7854;cout<<val1<<" liters is "<<val2<<" gallo ns."<<e ndl;華氏溫度轉(zhuǎn)換成攝氏溫度Fahre nheit to Celsiusclass f_to_c: public convertpublic:void compu te()val2=(val1-32)*5/9;cout<<val1<<

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論