繼承與派生2

2021-06-28 22:49:40 字數 1378 閱讀 7180

編寫程式,宣告乙個基類shape,再派生出rectangle類和circle,二者都有getarea()函式,計算物件的面積。使用程式rectangle類建立乙個派生類square。

#includeusing namespace std;

class shape//圖形類

//析構函式

virtual double getarea()=0;//純虛函式

virtual void print()=0;//純虛函式

};class rectangle:virtual public shape//矩形類,公有繼承圖形類

//析構函式

double getarea();//面積函式

virtual void print();

protected:

double width,height;//寬,高

};rectangle::rectangle()

rectangle::rectangle(double w,double h)

double rectangle::getarea()

void rectangle::print()

class circle:public shape//圓類,公有繼承圖形類

//析構函式

double getarea();//面積函式

void print();

protected:

double radius;

};circle::circle()

circle::circle(double r)

double circle::getarea()

void circle::print()

class square:public rectangle//正方形類,公有繼承矩形類

//析構函式

double getarea();//面積函式

void print();

};square::square(double w):rectangle(w,w)

{}double square::getarea()

void square::print()

int main()

{ shape *sh[3];

sh[0]=new rectangle;

sh[1]=new circle;

sh[2]=new square;

rectangle *re[2];

re[0]=new rectangle;

re[1]=new square;

int i;

for(i=0;i<3;i++)

{ sh[i]->print();

coutcoutcoutcoutcoutcoutcoutcout<

物件導向2 繼承與派生

1 繼承的概念 引入 先定義了乙個類a,然後又想新建立另外乙個類b,但是類b的大部分內容與類a是相同的,我們不可能從新再寫乙個類b,這就用到了類的繼承的概念。通過繼承的方式新建類b,讓b繼承a,b會 遺傳 a的所有屬性 資料屬性和函式屬性 概念 繼承是指類與類之間的關係,是一種建立新類的方式,新建的...

繼承與派生(2 公有繼承) 重點

基類中的成員 private成員 public成員 protected成員 派生類內部 不可訪問 可以訪問 可以訪問 派生類的物件 不可訪問 可以訪問 不可訪問 定義乙個基類person 不定義建構函式 私有資料成員 姓名,性別,年齡 公有成員函式 set p 設定person的私有資料成員 sho...

派生與繼承 多重派生

1 理解下面的程式,並在 vc 6.0 下執行檢視結果,回答程式後面的問題。class cbase1 cbase1 void print protected int a class cbase2 cbase2 void print protected int b class cderive publ...