第十周任務三之點類及多重派生

2021-06-06 01:29:31 字數 1775 閱讀 3909

源程式:

/*(檔案注釋頭部開始) 

*程式的版權和版本宣告部分

*檔名稱:point類及其多重派生類

*作 者:2011級計114-3張宗佳

*完成日期:2023年4月24號

*版本號:vc

* 對任務及求解方法的描述部分

* 輸入描術:

* 問題描述:

(1)先建立乙個point(點)類,包含資料成員x,y(座標點);

(2)以point為基類,派生出乙個circle(圓)類,增加資料成員 (半徑);

(3)再以circle類為直接基類,派生出乙個cylinder(圓柱體)類,再增加資料成員h(高)。

要求編寫程式,設計出各類中基本的成員函式(包括建構函式、析構函式、修改資料成員和獲取資料成員的公共介面、用於輸出的過載運算子

「<<」函式等),使之能用於處理以上類物件,最後求出圓格柱體的表面積、體積並輸出。

專案)* 程式輸出:

* 程式頭部的注釋結束

*/

#includeusing namespace std;

class point

;point::point(double a, double b)

void point::setpoint(double a,double b)

double point::getx()

double point::gety()

point::~point(){}

ostream & operator << (ostream &output, point &p)

class circle:public point

;circle::circle(double a,double b,double c):point(a,b)

void circle::setcircle(double c)

double circle::getr()

double circle::getarea()

ostream & operator << (ostream &output,circle &c)

circle::~circle(){}

class cylinder:public circle

;cylinder::cylinder(double a,double b,double c,double d):circle(a,b,c)

void cylinder::setcylinder(double d)

double cylinder::geth()

double cylinder::area()

double cylinder::volume()

ostream & operator << (ostream &output,cylinder &c)

cylinder::~cylinder(){}

int main()

實驗結果:

圓心是:(3,4)半徑是:2.5高是:5表面積是:117.75體積是:98.125

圓心是:(3,5)半徑是:5高是:4表面積是:282.6體積是:314請按任意鍵繼續. . .

經驗積累:

1.多重派生,可以分成若幹部來寫,就像老師說的:先宣告基類,再宣告派生類,逐級進行,分步除錯。

2.基類和第乙個派生出來的類中的資料成員要定義成prected型,這樣,派生出來的類才能訪問其資料成員,開始定義成了private了,執行沒通過,才發覺是這裡出了問題...「爸媽的東西不能碰了,好鬱悶」....

第十周任務二 單程派生

include include include setw 設定輸出資料的寬度,使用時應 include using namespace std class cperson protected char m szname char m szid int m n 0 women,1 man int m ...

第十周 任務1

實驗目的 學會使用迴圈控制語句解決實際問題 實驗內容 用if語句編寫選擇結構的程式,完成分段函式的求解 include using namespace std int main double x,f const double x1 0.3,x2 0.8 cout cin x if xx2 f 1 e...

第十周任務(一)

作 者 董寶文 完成日期 2011年 10月 26日 版 本號 對任務及求解方法的描述部分 輸入描述 函式自變數x 問題描述 求函式的值 當x 0.3時,f x 0 當0.3 x 0.8時,f x x 0.3 0.8 0.3 當x 0.8時,f x 1 按你實際編的程式寫 程式輸出 f x 的值 問...