C 7 1類的繼承與派生(PTA題目)

2021-10-06 15:50:29 字數 2693 閱讀 2479

定義平面二維點類cpoint,有資料成員x座標,y座標,函式成員(建構函式複製建構函式、虛函式求面積getarea,虛函式求體積函式getvolume、輸出點資訊函式print。由cpoint類派生出圓類cirle類(新增資料成員半徑radius),函式成員(建構函式、複製建構函式、求面積getarea,虛函式求體積函式getvolume、輸出圓資訊函式print。 再由ccirle類派生出圓柱體ccylinder類(新增資料成員高度height),函式成員(建構函式、複製建構函式、求表面積getarea,求體積函式getvolume、輸出圓柱體資訊函式print。在主函式測試這個這三個類。

輸入格式:

0 0 例如:第一行讀入圓心座標。 1 2 第二行讀入半徑與高度。

輸出格式:

分四行輸出,分別代表圓心、底面積、表面積、體積。

輸入樣例:

在這裡給出一組輸入。例如:

0 0

1 2

輸出樣例:在這裡給出相應的輸出。例如:

center:(0,0)

radius=1

height:2

basalarea:3.14159

supfacearea:18.8496

volume:6.28319

#include

#include

#define pi 3.1415926

using

namespace std;

//點class

cpoint

//求面積

virtual

double

getvolume()

//求體積

void

print()

;};cpoint::

cpoint

(double x,

double y):x

(x),

y(y)

cpoint::

cpoint

(cpoint &cp):x

(cp.x),y

(cp.y)

void cpoint::

print()

//圓

class

cirle

:public cpoint

double

getarea()

;//求面積

virtual

double

getvolume()

;//求體積

void

print()

;};cirle::

cirle

(double x,

double y,

double r)

:cpoint

(x,y)

,radius

(fabs

(r))

cirle::

cirle

(cirle& c)

:cpoint

(c),

radius

(c.radius)

double cirle::

getarea()

double cirle::

getvolume()

void cirle::

print()

//圓柱

class

ccylinder

:public cirle

double

getarea()

;//求面積

virtual

double

getvolume()

;//求體積

void

print()

;};ccylinder::

ccylinder

(double x,

double y,

double r,

double h)

:cirle

(x,y,r)

,height

(fabs

(h))

ccylinder::

ccylinder

(ccylinder& cc)

:cirle

(cc)

,height

(cc.height)

double ccylinder::

getarea()

double ccylinder::

getvolume()

void ccylinder::

print()

intmain()

執行截圖:

ps:這道題裡面有乙個非常坑爹的地方,就是π,我一開始看到題目的樣例裡面輸出裡面,我以為這裡的π是3.1414159,然後交到pta上,一直都是部分正確。直到後來看到別人的答案才知道,原來這裡的π是3.1415926,這已經不是我第1次栽在π那裡。

c 類的繼承與派生

一 基本概念 1 類的繼承,是新的類從已有類那裡得到已有的特性。或從已有類產生新類的過程就是類的派生。原有的類稱為基類或父類,產生的新類稱為派生類或子類。2 派生類的宣告 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,繼承方式 基類名n 3 乙個派生類可以同時有多個基類,這種情況稱為...

C 類的繼承與派生

1.乙個包含多級派生 構造 析構函式的綜合例項 include using namespace std class a a 析構函式,關於析構函式只做簡單介紹 void f1 int i protected void f2 int j private int k class b public a 定...

C 類的繼承與派生

繼承是物件導向程式設計中最重要的乙個概念。繼承允許我們根據乙個類來定義另乙個類,達到了 功能重用效果。當建立乙個類時,如果待建立的類與另乙個類存在某些共同特徵,程式設計師不需要全部重新編寫成員變數和成員函式,只需指定繼承另乙個類即可,被繼承的類稱為基類或父類,新建的類稱為派生類或子類。定義乙個派生類...