面向?qū)ο蟪绦蛟O(shè)計C答案5_第1頁
面向?qū)ο蟪绦蛟O(shè)計C答案5_第2頁
面向?qū)ο蟪绦蛟O(shè)計C答案5_第3頁
面向?qū)ο蟪绦蛟O(shè)計C答案5_第4頁
面向?qū)ο蟪绦蛟O(shè)計C答案5_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——面向?qū)ο蟪绦蛟O(shè)計C答案5

第4章類和對象習(xí)題答案

Admin瀏覽

324發(fā)布時間08/11/11

教材:C++程序設(shè)計[2023年版]--4737:劉振安出版社:機械工業(yè)出版社習(xí)題4

一、填空題1.不能使用類對象的指針取對象的成員函數(shù)和數(shù)據(jù)成員的地址。(對象指針能夠訪問成員函數(shù)和數(shù)據(jù)成員的地址,但不能取出,如賦給另外一個指針,取出數(shù)據(jù)成員和成員函數(shù)地址的規(guī)則,在教材的第5章p117有講解)2.構(gòu)造函數(shù)是和類同名的函數(shù),析構(gòu)函數(shù)不允許有參數(shù),一個類有1個析構(gòu)函數(shù)。

3.已知一個類的名字為fun,則其復(fù)制構(gòu)造函數(shù)的原型可聲明為fun::fun(fun和fun::fun(constfun兩種形式。

二、單項選擇題1-5CCABC6-7CD

1.能提供封裝的C++的以下關(guān)鍵字是()。A.whileB.unionC.classD.for

2.在以下所列項中,不是面向?qū)ο蟮奶攸c的是()。A.多態(tài)性B.抽象性和封裝性C.多線程和多任務(wù)D.繼承性

3.下面選項中,對類A的析構(gòu)函數(shù)的正確定義是()。

A.~A::A(void)B.void~A::A(參數(shù))C.~A::A(參數(shù))D.void~A::A()4.下面有關(guān)構(gòu)造函數(shù)的不正確說法是()。A.構(gòu)造函數(shù)可以用來實現(xiàn)所有成員變量的初始化B.構(gòu)造函數(shù)不是類的成員函數(shù)

C.當(dāng)生成類的實例時,自動調(diào)用構(gòu)造函數(shù)進行初始化D.構(gòu)造函數(shù)用來分派對象所需內(nèi)存5.有關(guān)析構(gòu)函數(shù)的不正確說法是()。A.析構(gòu)函數(shù)在對象生存期終止時自動被調(diào)用B.析構(gòu)函數(shù)不得指定參數(shù)

C.定義析構(gòu)函數(shù)時,可以指定返回值類型為voidD.析構(gòu)函數(shù)名與類名同名

6.下面有關(guān)類說法錯誤的是()。A.一個類可以由多個構(gòu)造函數(shù)B.一個類子能有一個析構(gòu)函數(shù)C.可以給析構(gòu)函數(shù)指定參數(shù)

D.一個類中可以說明具有類類型的數(shù)據(jù)成員

7.下面有關(guān)構(gòu)造函數(shù)和new運算符關(guān)系的正確說法是()。A.new運算符不調(diào)用構(gòu)造函數(shù)B.構(gòu)造函數(shù)一定調(diào)用new運算符

C.當(dāng)生成類的實例時,先調(diào)用new運算符,然后調(diào)用構(gòu)造函數(shù)進行初始化D.當(dāng)用new運算符動態(tài)產(chǎn)生類的對象時,new運算符也自動調(diào)用構(gòu)造函數(shù)

//三、改錯題

//1.找出以下類定義中的錯誤,并說明錯在何處。

classbase{int*p;public:

base(inta){p=}//error1:函數(shù)體改為p=newint(a);原因:指針p所指向的變量的生存期不應(yīng)低于指針p的生存期intGetx(){returnm;}//error2:改為intGetx(){return*p;}原因:據(jù)推測這里應(yīng)返回指針p指向的值~base(){deletep}//error3:改為~base(){deletep;}原因:語句后面應(yīng)加上分號(;)分隔符};//測試代碼如下:#includeusingnamespacestd;classbase{int*p;public:

base(inta){p=newint(a);}intGetx(){return*p;}~base(){deletep;}};

voidmain(){baseobj(2);

cout//error1:使用標(biāo)準(zhǔn)類庫中的頭文件,需引入命名空間stdclassPoint{intx;public:

voidinit(inta){Setx(a);}intGetx(){returnx;}

intSetx(inta){x=a;}//error2:不需要返回整型值};

voidmain(){

A.init(24,56);//error3,4:對象A尚未聲明;init函數(shù)調(diào)用時,實參和形參個數(shù)不匹配coutusingnamespacestd;classPoint{intx;public:

voidinit(inta){Setx(a);}intGetx(){returnx;}voidSetx(inta){x=a;}};

voidmain(){PointA;A.init(24);coutusingnamespacestd;

//////////////下面是需要設(shè)計的類///////////////////classbase{intx,y;public:

voidinit(inta,intb){x=a;y=b;}

voidprint(){

coutusingnamespacestd;classPoint{private:intm,n;public:

Point(int,int);Point(Pointvoiddisplay();};

Point::Point(inta,intb){m=a;n=b;}

Point::Point(Pointn=t.n;}

voidPoint::display(){

coutclassbase{inta,b;public:

~base(){cout

{coutusingnamespacestd;

classbase{intx;public:

voidsetx(inta){x=a;}intgetx(){returnx;}};

voidmain(){int*p;basea;a.setx(55);

p=newint(a.getx());cout#includeusingnamespacestd;classPoint{private:intx,y;public:

Point(intx=0,inty=0):x(x),y(y){}

voidSetxy(intx,inty){this->x=x;this->y=y;}intGetx(){returnx;}intGety(){returny;}};

classRectangle{private:

PointLDP,RUP;intdx,dy;public:

Rectangle(Pointp1,Pointp2):LDP(p1),RUP(p2){dx=abs(LDP.Getx()-RUP.Getx());dy=abs(LDP.Gety()-RUP.Gety());}

voidDisplayLeftDownPoint(){

cout#include

usingnamespacestd;classPoint{private:intx,y;public:

Point(intx=0,inty=0):x(x),y(y){}

voidSetxy(intx,inty){this->x=x;this->y=y;}intGetx(){returnx;}intGety(){returny;}};

classLine{private:

PointStart,End;floatlen;public:

Line(Pointp1,Pointp2):Start(p1),End(p2){intdx=abs(Start.Getx()-End.Getx());intdy=abs(Start.Gety()-End.Gety());len=sqrt(dx*dx+dy*dy);}

voidDisplayStartPoint(){

cout

#includeusingnamespacestd;classPoint{private:intx,y;public:

Point(intx=0,inty=0):x(x),y(y){}

voidSetxy(intx,inty){this->x=x;this->y=y;}intGetx(){returnx;}intGety(){returny;}};

classLine{private:

PointStart,End;floatlen;public:

inlineLine(Pointp1,Pointp2);inlinevoidDisplayStartPoint();inlinevoidDisplayEndPoint();inlineintGetLength();}

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論