第十章運(yùn)算符重載復(fù)習(xí)題_第1頁
第十章運(yùn)算符重載復(fù)習(xí)題_第2頁
第十章運(yùn)算符重載復(fù)習(xí)題_第3頁
第十章運(yùn)算符重載復(fù)習(xí)題_第4頁
第十章運(yùn)算符重載復(fù)習(xí)題_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、運(yùn)算符重載 復(fù)習(xí)題1. 重載賦值操作符時(shí),應(yīng)聲明為( ) A. 友元函數(shù) B. 虛函數(shù) C. 成員函數(shù) D. 多態(tài)函數(shù)2.關(guān)于重載的描述,正確的是( )A.函數(shù)重載只能在成員函數(shù)之間進(jìn)行B.函數(shù)重載只能在全局函數(shù)之間進(jìn)行C.函數(shù)重載可以在基類和派生類之間進(jìn)行D.函數(shù)重載必須要求同名的函數(shù)的形參類型和個(gè)數(shù)都完全一致,返回值類型無所謂3下列運(yùn)算符中不能重載的是 ( )。A (域運(yùn)算符) B.+ (正) C.+ (自增) D.*(指針)4. 派生類的對(duì)象對(duì)它的基類成員中( )A. 公有繼承的公有成員是可以訪問的 B. 公有繼承的私有成員是可以訪問的C. 公有繼承的保護(hù)成員是可以訪問的 D. 私有繼承

2、的公有成員是可以訪問的5 不能重載的運(yùn)算符是( )A. ?: B. C. new D. &6. C+中不能重載的運(yùn)算符是 ( )A. new B. += C. sizeof D. &7.重載函數(shù)是( )A.以函數(shù)參數(shù)來區(qū)分,而不用函數(shù)的返回值來區(qū)分不同的函數(shù)B.以函數(shù)的返回值來區(qū)分,而不用函數(shù)參數(shù)來區(qū)分不同的函數(shù)C.參數(shù)表完全相同而返回值類型不同的兩個(gè)或多個(gè)同名函數(shù)D.參數(shù)表和返回值類型中至少有一個(gè)不同的兩個(gè)或多個(gè)同名函數(shù)8.對(duì)于運(yùn)算符重載,說法正確的是( ) A.運(yùn)算符如果被重載為非成員函數(shù),那么對(duì)象就不能利用這個(gè)運(yùn)算符重載函數(shù)進(jìn)行操作B.運(yùn)算符重載函數(shù)可能既不是成員函數(shù),也不是友元函數(shù)C.

3、用戶每定義一個(gè)類,系統(tǒng)會(huì)自動(dòng)提供一個(gè)賦值運(yùn)算符重載函數(shù),所以完全不必考慮重載賦值運(yùn)算符函數(shù)D.一個(gè)類的虛函數(shù)不能調(diào)用運(yùn)算符重載函數(shù)9. C+中不能重載的運(yùn)算符是( )A. = B. () C. : D. delete10. 不能作為函數(shù)重載判斷依據(jù)的是( )A. const B. 返回類型 C. 參數(shù)個(gè)數(shù) D. 參數(shù)類型11. 為滿足運(yùn)算符 “+” 的可交換性, 必須將其重載為成員函數(shù), 重載的函數(shù)名是關(guān)鍵字 加上運(yùn)算符“+”。 operator12. 具有相同函數(shù)名但具有不同參數(shù)表的函數(shù)稱為 。重載函數(shù)13. 拷貝構(gòu)造函數(shù)是在用一個(gè)對(duì)象初始化另一個(gè)對(duì)象時(shí)被調(diào)用,系統(tǒng)缺省的拷貝構(gòu)造函數(shù)的工作方

4、法是 。拷貝數(shù)據(jù)成員14. 下列程序定義了一實(shí)部為mal,虛部為imag的復(fù)數(shù)類complex,并在類中重載了復(fù)數(shù)的+、-操作。請(qǐng)將下列程序補(bǔ)充完整。ClassComplexpublic: Complex(doubler=0.0,doublei=0.O)real=r;imag=i;Complex operator+(Complex);friend Complex operator-(Complex,Complex);private:doublereal,imag;Complex Complex: operator+(Complexc) return *this; operator-(Compl

5、exc1,Complexc2) returnComplex( _);33 this-real+=c.real,this-imag+=c.imag; Complex c1.real+c2.real,c1.imag+c2.imag 15設(shè)有類的定義:class Matrix /定義Matrix類 public: Matrix(); /默認(rèn)構(gòu)造函數(shù) friend Matrix operator+(Matrix &,Matrix &); /重載運(yùn)算符“+” void input(); /輸入數(shù)據(jù)函數(shù) void display(); /輸出數(shù)據(jù)函數(shù) private: int mat23; ;實(shí)現(xiàn)兩個(gè)矩陣

6、A和B(均為2行3列)的和。試寫出成員函數(shù)Matrix( )實(shí)現(xiàn)構(gòu)造函數(shù)初始化0值,友員函數(shù)Matrix operator+(Matrix &a,Matrix &b)實(shí)現(xiàn)重載運(yùn)算符+,使之能用于該矩陣相加,如:C=A+B。Matrix:Matrix() (1分) /定義構(gòu)造函數(shù)for(int i=0;i2;i+) (1分) for(int j=0;j3;j+) (1分) matij=0; (1分)Matrix operator+(Matrix &a,Matrix &b) (1分) /定義重載運(yùn)算符“+”函數(shù)Matrix c; (1分) for(int i=0;i2;i+) (1分) for(i

7、nt j=0;j3;j+) (1分) c.matij=a.matij+b.matij; (1分) return c; (1分) 16仔細(xì)閱讀程序,在題后寫出其運(yùn)行結(jié)果。#include using namespace std;class Complex public: Complex()real=0;imag=0; Complex(double r,double i)real=r;imag=i; Complex operator + (Complex &c2); void display(); private: double real; double imag; ;Complex Comple

8、x:operator + (Complex &c2)Complex c; c.real=real+c2.real; c.imag=imag+c2.imag;return c; void Complex:display()cout(real,imagi);int main()Complex c1(3,4),c2(1,-2),c3; c3=c1+c2; c1.display(); cout+;c2.display(); cout=;c3.display(); return 0;運(yùn)行結(jié)果:39. (3,4i)+(1,-2i)=(4,2i)17仔細(xì)閱讀程序,在題后寫出其運(yùn)行結(jié)果。#include us

9、ing namespace std;class Complex public: Complex()real=0;imag=0; Complex(double r,double i)real=r;imag=i; Complex operator + (Complex &c2); void display(); private: double real; double imag; ;Complex Complex:operator + (Complex &c2)Complex c; c.real=real+c2.real; c.imag=imag+c2.imag;return c;void Com

10、plex:display()cout(real,imagi);int main()Complex c1(2,3),c2(1,2),c3; c3=c1+c2; c1.display(); cout+;c2.display(); cout=;c3.display(); return 0;運(yùn)行結(jié)果:39. (2,3i)+(1, 2i)=(4,5 i)18寫出下列程序的運(yùn)行結(jié)果。#includeclassCoordpublic: Coord(inti=0,intj=0)x=i;y=j; voidPrint()coutx=x,y=”yendl; friendCoordoperator+(Coordop)

11、;private:intx,inty;Coordoperator+(Coordop) +op.x; +op.y; returnop;voidmain() Coordobj(2,3); obj.Print(); +obj; obj.Print();運(yùn)行結(jié)果:39. x=2,y=3 (2分)x=2,y=3 (3分)19. 下面程序是一個(gè)含有比較運(yùn)算符和賦值運(yùn)算符重載的程序,仔細(xì)閱讀程序并將其補(bǔ)充完整。#include class pointprivate:float x,y;public:point(float xx=0,float yy=0) x=xx,y=yy;point(point&);po

12、int();bool operator=(point);bool operator!=(point);point& operator+=(point);float getx()return x;float gety()return y;point:point(point& p) bool point:operator=(point p)if(x=p.getx()&(y=p.gety() )Return 1;elseReturn 0;bool point:operator!=(point p)if( )Return 1;elseReturn 0;point& point:operator+=(p

13、oint p)this-x+=p.getx();this-y+=p.gety();return void main()point p1(1,2),p2(3,4);p3(5,6);cout”p1=p2? ”(p1=p2)endl;cout”p1!=p2? ”(p1!=p2)endl;p3+=p1;cout”p3+=p1,p3: ”p3.getx()p3.gety()endl; x=p.getx(),y=p.gety() ; (x!=.getx()&(y!=.gety() *this 20定義一個(gè)復(fù)數(shù)類Complex,重載運(yùn)算符“+”,使之能用于復(fù)數(shù)的加法運(yùn)算。將運(yùn)算符函數(shù)重載為非成員、非友元的普

14、通函數(shù)。編寫程序,求出兩個(gè)復(fù)數(shù)之和。41#include using namespace std;int main() (1分)void convert(int n); int number; (1分) coutnumber; (1分) coutoutput:endl; (1分) if (number0) cout-; number=-number; (1分) (1分) convert(number); coutendl; return 0; (1分) void convert(int n) int i; char c; if (i=n/10)!=0) (1分) convert(i); c=n

15、%10+0; (1分) cout c; (1分) 21仔細(xì)閱讀程序,在題后寫出其運(yùn)行結(jié)果。#include #include class String public: String()p=NULL; String(char *str); friend bool operator(String &string1,String &string2); void display(); private: char *p; ; String:String(char *str)p=str;void String:display() cout(String &string1,String &string2)i

16、f(strcmp(string1.p,string2.p)0) return true; else return false;void compare(String &string1,String &string2)if(operator(string1,string2)=1) string1.display();cout;string2.display(); else string1.display();cout=;string2.display();int main()String string1(Aello),string2(Book); compare(string1,string2)

17、; return 0;運(yùn)行結(jié)果:39. Aello=Book22仔細(xì)閱讀程序,在題后寫出其運(yùn)行結(jié)果。#include using namespace std;class Timepublic: Time()minute=0;sec=0; Time(int m,int s):minute(m),sec(s) Time operator+(); void display()coutminute:sec=60) sec-=60; +minute; return *this; int main()Time time1(34,58); for (int i=1;ireal+=c.real,this-im

18、ag+=c.imag; Complex c1.real+c2.real,c1.imag+c2.imag 24仔細(xì)閱讀程序,在題后寫出其運(yùn)行結(jié)果。#include using namespace std;class Timepublic: Time()minute=0;sec=0; Time(int m,int s):minute(m),sec(s) Time operator+(); Time operator+(int); void display()coutminute:sec=60) sec-=60; +minute; return *this;Time Time:operator+(i

19、nt)Time temp(*this); sec+; if(sec=60) sec-=60; +minute; return temp;int main()Time time1(34,59),time2; cout time1 : ; time1.display(); +time1; time2=time1+; cout time2 : ; time2.display(); cout time1 : ; time1.display();return 0;運(yùn)行結(jié)果:38 time1:34:59 (2分)time2:35:0 (2分)time1:35:1 (1分)25編程:定義一個(gè)復(fù)數(shù)類Complex,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論