?第 1 題 【要求】編寫(xiě)程序,定義一個(gè)形狀 Shape 基類,包括整型的數(shù)據(jù)成員 x、y 來(lái)表示位置,定義帶參數(shù)的構(gòu)造函數(shù)可以初始化數(shù)據(jù)成員 x、y, 再由此定義出派生類:矩形類 Rect 和圓類 Circle,Rect 類增加寬和高 width、high 兩個(gè)數(shù)據(jù)成員,Circle 類增加半徑 radius,分別定義兩個(gè) 派生類的構(gòu)造函數(shù),可以初始化各自的數(shù)據(jù)成員(包括基類數(shù)據(jù)成員), 最后用主函數(shù)測(cè)試。 【分析】基類 Shape 中,整型的數(shù)據(jù)成員 x、y,帶兩個(gè)參數(shù)的構(gòu)造函 數(shù),顯示信息的 show()成員函數(shù)。 派生類 Circle 中增加整型數(shù)據(jù)成員 radius,三個(gè)參數(shù)的構(gòu)造函數(shù), 顯示信息的 show()成員函數(shù)。 派生類 Rect 中增加整型數(shù)據(jù)成員 width、high,四個(gè)參數(shù)的構(gòu)造 函數(shù),顯示信息的 show()成員函數(shù)。 主函數(shù)中對(duì)這三個(gè)類生成對(duì)象,分別進(jìn)行測(cè)試。 【源代碼】 #include <iostream> using namespace std; class Shape { int x,y; public: Shape(int ix,int iy) { x = ix; y = iy; } void show() { cout<<"pos: "<<x<<' '<<y<<endl; } }; class Circle:public Shape { int radius; public: Circle(int ix,int iy,int r):Shape(ix,iy) { radius=r; } void show() { Shape::show (); cout<<"circle: "<<radius<<endl; } }; class Rect:public Shape { int width,high; public: Rect(int ix,int iy,int iw,int ih):Shape(ix,iy) { width=iw; high=ih; } void show() { Shape::show(); cout<<"width and high: "<<width<<' '<<high<<endl; } }; int main() { Shape s(1,1); Circle c(3,3,9); Rect r(2,2,8,8); s.show(); c.show(); r.show (); return 0; }
|
|
來(lái)自: 青竹奏樂(lè) > 《C (二)繼承與派生》