C++程序設計基礎(chǔ)課后答案第八章_第1頁
C++程序設計基礎(chǔ)課后答案第八章_第2頁
C++程序設計基礎(chǔ)課后答案第八章_第3頁
C++程序設計基礎(chǔ)課后答案第八章_第4頁
C++程序設計基礎(chǔ)課后答案第八章_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、閱讀下列程序,寫出執(zhí)行結(jié)果#include class Bclass public:Bclass( int i, int j ) x = i; y = j; virtual int fun() return 0 ; protected: int x, y ;class Iclass:public Bclass public :Iclass(int i, int j, int k):Bclass(i, j) z = k; int fun() return ( x + y + z ) / 3; private : int z ;void main()Iclass obj( 2, 4, 10 );B

2、class pl = obj;cout () endl;Bclass & p2 = obj ;cout () endl;cout fun() endl;Bclass *p3 = &obj;cout fun() endl;#include class Base public:virtual void getxy( int i,int j = 0 ) x = i; y = j; virtual void fun() = 0 ;protected:int x , y;);class A: public Base public:void fun() coutx = xty = x * x = x*xe

3、ndl; );class B:public Base public:void fun() cout x = x t y = y endl;cout y = x / y = x / y getxy( 10 );pb - fun();pb = &obj2;pb - getxy( 100, 20 );pb - fun();思考題.在C+鐘,使用類體系依靠什么機制實現(xiàn)程序運行時的多態(tài).如果一個基類的虛函數(shù)被聲明為私有成員函數(shù),會有語法錯誤嗎可以在應用類體系時實現(xiàn)動態(tài)聯(lián)編嗎請你驗證一下。.虛函數(shù)和純虛函數(shù)的區(qū)別是什么. 一個非抽象類的派生類是否可以為抽象類利用例8-11進行驗證,從Hex_type類派生

4、一個Hex_format類,其中包含一個純虛函數(shù)Show_format(),然后定義 Hex_format的派生類實現(xiàn) Show_format()。.在C+鐘,使用類體系依靠什么機制實現(xiàn)程序運行時的多態(tài)在C+中,基類指針可以指向派生類對象,以及基類中擁有虛函數(shù),是支持多態(tài)性的前提。程序通過用同一個基類指針訪問不同派生類的虛函數(shù)重載版本實現(xiàn)程序運行時的多態(tài)。C+的虛特性負責自動地在程序運行時把基類指針的關(guān)聯(lián)類型轉(zhuǎn)換成當前指向?qū)ο蟮呐缮愵愋汀A硗猓橄箢悪C制提供了軟件抽象和可擴展性的手段,實現(xiàn)運行時的多態(tài)性。如果一個類的虛函數(shù)被聲明為私有成員函數(shù),會有語法錯誤嗎當它作為基類時,可以在應用類體系時

5、實現(xiàn)動態(tài)聯(lián)編嗎請你驗證一下。【答案】沒有語法錯誤。但在應用類體系時無法實現(xiàn)動態(tài)編聯(lián)和多態(tài)。因為私有成員函數(shù)只在類內(nèi)可見,在類外無法調(diào)用,無法在類外通過基類指針實現(xiàn)多態(tài)。程序略。3虛函數(shù)和純虛函數(shù)的區(qū)別是什么【答案】虛函數(shù)定義時冠以關(guān)鍵字virtual, 本身有實現(xiàn)代碼,作用是引導基類指針根據(jù)指向?qū)ο笳{(diào)用類體系中不同重載版本函數(shù)。純虛函數(shù)是指在說明時代碼 “為 0” 的虛函數(shù),即純虛函數(shù)本身并沒有實現(xiàn)代碼, 必須通過它的派生類定義實現(xiàn)版本。4一個非抽象類的派生類是否可以為抽象類利用例9-11 進行驗證,從Hex_type 類派生一個Hex_format類,其中包含一個純虛函數(shù)Show_forma

6、t ,然后定義Hex_format 的派生類定義實現(xiàn)Show_format 。一個非抽象類的派生類可以為抽象類,即在派生類中定義了純虛函數(shù)。程序略。編程題.使用虛函數(shù)編寫程序求球體和圓柱體的體積及表面積。由于球體和圓柱體都可以看作由圓繼承而來,所以可以定義圓類 Circle作為基類。在 Circle類中定義一個數(shù)據(jù)成員radius和兩個虛函數(shù)area()和volume()。由Circle類派生Sphere類和Column類。在派生類中對虛函數(shù)area()和volume()重新定義,分別求球體和圓柱體的體積及表面積。答案答案#include const double PI=3.;class ci

7、rcle public:circle(double r) radius = r; virtual double area() return ; virtual double volume() return ; protected: double radius;class sphere:public circle public: sphere( double r ):circle( r ) double area() return * PI * radius * radius; double volume() return * PI * radius * radius * radius / ;

8、;class column:public circle public: column( double r,double h ):circle( r ) height = h; double area() return * PI * radius * ( height + radius ); double volume() return PI * radius * radius * height; private:);void main()circle *p;sphere sobj(2);p = &sobj;cout 球體: endl;cout 體積 = p-volume() endl;cout

9、 vv表面積 = p-area() endl;column cobj( 3,5);p = &cobj;cout vv 圓柱體; endl;cout vv 體積 = p-volume() endl;cout vv表面積 = p-area() endl;.某學校對教師每月工資的計算規(guī)定如下:固定工資+課時補貼。教授的固定工資為5000元,每個課時補貼50元。副教授的固定工資為3000元,每個課時補貼 30元。講師的固定工資為2000元,每個課時補貼20元。定義教師抽象類,派生不同職稱的教師類,編寫程序求若干個教師的月工資。笞案答案#include #include class teacher pu

10、blic:teacher( char tname,int time ) strcpy( name,tname );coursetime = time;virtual int pay() = 0;virtual void print() = 0;char *getname() return name; return coursetime; protected: char name30;int coursetime;class professor:public teacher public:professor( char pname,int time ):teacher( pname,time )

11、 int pay() return 5000+coursetime*50; void print() cout教授:getname(); ;class associateprofessor:public teacher public:associateprofessor( char pname,int time ):teacher( pname,time ) return 3000 + coursetime * 30; void print() cout 副教授: getname(); ;class lecturer:public teacher public:lecturer( char pname,int time ):teacher( pname,time ) int pay() return 2000 + coursetime * 20;void print() cout 講師: getname();void main() professor pobj( 李小平 ,32 );();cout t 工資: () endl;as

溫馨提示

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

評論

0/150

提交評論