第8章繼承答案_第1頁
第8章繼承答案_第2頁
第8章繼承答案_第3頁
第8章繼承答案_第4頁
第8章繼承答案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第八章 繼承習題一 一、填空題 1. private 繼承方式基類特性派生類特性publicpublicpublicprotectedprotectedprivate不可訪問privatepublicprivateprotectedprivateprivate不可訪問protectedpublicprotectedprotectedprotectedprivate不可訪問2. 基類A中定義一個成員函數callA,若B類直接繼承了A類,希望B類的對象objectB能夠直接訪問這個成員函數,則類A中,callA的訪問屬性應該定義為public,派生類B的繼承方式應該是public方式。若希望B中的

2、其他成員函數可以訪問callA,而對象objectB不能直接訪問,可以有幾種實現方法,請?zhí)羁眨篶lass A .protected:void callA();.;class B: public A.; class A .public:void callA();.;class B: protected A.; class A .protected:void callA();.;class B: protected A.; 3. 基類 派生類 基類 子對象 本類成員 基類名 子對象名 4. 基類的構造函數,子對象類的構造函數,派生類構造函數。5. 不需要 自動 相反二、選擇填空123456DADB

3、CA三、根據程序寫結果1、請寫出程序運行結果As constructor called.Bs constructor called.2,5,Bs destructor called.As destructor called.2、根據程序寫結果,分析與第一題的差別As constructor called.Cs constructor called.Bs constructor called.2,5, 3,Bs destructor called.Cs destructor called.As destructor called.四、程序填空1、public cPointcPoint(x,y)p

4、ublic cPointconst float cCircle:PI=3.14;2、Point:Point(double a, double b)const Point &pPoint: startPoint(start), endPoint(end)endPoint.setPoint(endX, endY);startPoint.setPoint(start);Polygon(Point points, int num); perimeter += bordersi.getLength();Polygon(points, 3)五、編程題1、下面是一個形狀shape類,編寫他的派生類,圓類Ci

5、rcle,三角形Triangle,重新定義基類的成員函數并增加必要的數據成員,使之能夠正常運行。#include #includeusing namespace std;class Shapepublic: virtual double area()return 0; /形狀的面積 virtual double girth()return 0; /形狀的周長 virtual void show()=0;/輸出對象的信息protected:/此處為private的話就會出現錯誤,原因是(是private的話)下面繼承中 /不能直接訪問a,b,c/private:;class Circle:pri

6、vate Shapepublic: Circle(double tr)r=tr;/繼承基類中的成員函數void set-dim double area()return 3.14*r*r; double girth()return 2*3.14*r; void show() coutthe Circles radius is: rendl; coutits area is: area()endl; coutits girth is: girth()endl; private:double r; ;class Triangle:public Shapepublic: Triangle(double

7、 i,double j,double k)a=i;b=j;c=k; double area()double p=(a+b+c)/2; return sqrt(p*(p-a)*(p-b)*(p-c); double girth()return a+b+c; void show() coutthe Triangles three sides are: atbtcendl; coutits area is: area()endl; coutits girth is: girth()endl; private:double a,b,c;void main() Circle c(1.5); c.show

8、(); Triangle t(3,4,5); t.show(); 2、某出版系統(tǒng)發(fā)行圖書和磁帶,利用繼承設計管理出版物的類。要求如下:建立一個基類Publication存儲出版物的標題title、出版物名稱name、單價price及出版日期date。用Book類和Tape類分別管理圖書和磁帶,它們都從Publication類派生。Book類具有保存圖書頁數的數據成員page,Tape類具有保存播放時間的數據成員playtime。每個類都有構造函數、析構函數,且都有用于從鍵盤獲取數據的成員函數inputData(),用于顯示數據的成員函數display()。#include #include#i

9、ncludeusing namespace std;class Publicationprotected:string title;string name;double price;string date;public: Publication(string tt,string tn,double tp,string td)title=tt;name=tn;price=tp;date=td;void inputData()/*略*/;void show()coutTitle: titleendl;coutName: nameendl;coutPrice: priceendl;coutDate:

10、 dateendl;class Book:public Publicationprotected:int page;public :Book(string tt,string tn,double tp,string td,int tpage):Publication(tt,tn,tp,td)page=tpage;void show()Publication:show();coutpage: pageendl;void inputData()/*略*/;class Type:public Publicationprotected:int playtime;public :Type(string

11、tt,string tn,double tp,string td,int ttime):Publication(tt,tn,tp,td)playtime=ttime;void show()Publication:show();coutTime: playtimeendl;void inputData()/*略*/;void main() Book book1(圖書,C+程序設計,58.5,2010-9-1,450); book1.show(); Type type1(磁帶,大學英語,10,2010-9-1,60); type1.show();習題二 多重繼承和虛基類一、填空題1. 成員名限定2

12、. , 3. 基類的構造函數,對象成員的構造函數,派生類構造函數順序相反。4. 虛基類 virtual1) 虛基類 派生類2) 對它們說明二、選擇填空1234DCBD三、程序填空:virtual Vehicle(weight) virtual public Vehicle Vehicle(weight), Car(weight,aird), Boat(weight,tonnage) 四、編程題編寫程序對大學里的人員進行管理。大學里的人員主要由學生,教師(教課),教員(不教課)和在職進修教師(既當學生又當教師)組成,各類人員均有姓名,電話和地址等信息,學生還有專業(yè)信息,在職另有所在部門及工資信息

13、,教師另有教授課程信息,在職進修教師具備以上各類人員的信息。系統(tǒng)的類層次結構圖如下:Person Student Staff Teacher StudentTeacher#include#includeusing namespace std;class personpublic:person(string nam,string t,string a)name=nam;telephone=t;address=a;protected:string name,telephone,address;class student:virtual public personpublic:student(str

14、ing nam,string t,string a,string i):person(nam,t,a)infor=i;protected:string infor;class staff:virtual public personpublic:staff(string nam,string t,string a,string ad,float w):person(nam,t,a)office=ad;wages=w;protected:string office;float wages;class teacher: public staffpublic:teacher(string nam,st

15、ring t,string a,string ad,float w,string k):person(nam,t,a),staff(nam,t,a,ad,w),kcheng(k)protected:string kcheng;class zteacher:public teacher,public studentpublic:zteacher(string nam,string t,string a,string i,string ad,float w,string k):person(nam,t,a),student(nam,t,a,i),teacher(nam,t,a,ad,w,k)void show()coutname:nameendl;couttelephone:telephoneendl;coutaddress:addressendl;coutsuo xue zhan ye:info

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論