<pre class="plain" name="code">/* (程式頭部注釋開始)
* 程式的著作權和版本聲明部分
* Copyright (c) 2011, 煙台大學電腦學院學生
* All rights reserved.
* 檔案名稱: C++第十周【任務3】
* 作 者: 鮑增凱
* 完成日期: 2012 年 5 月 14 日
* 版 本 號: 10-3-1
* 對任務及求解方法的描述部分
* 輸入描述: 建立point類,以此為基類,派生出圓類和圓柱類
* 問題描述:在下面一段類的定義中,需要填充的函數由注釋內容給出了功能。
* 程式輸出:
* 程式頭部的注釋結束
*/
//1先建立一個Point點類,包含資料成員x,y(座標點);//2以point為基類,派生出一個circle類,增加資料成員r(半徑);//3自已circle為直接基類,派生出一個cylinder(圓柱體類),在增加資料成員h(高)。//要求:編寫程式,設計出各類中基笨的成員函數(包括建構函式,解構函式,修改資料成員和擷取資料成員的公用介面,用於輸出的重載運算子“<<”函數等)//是只能用於處理以上類對象,最後求出圓柱體的表面積和體積並輸出。//分析:圓柱體多的表面積=2*pi*r*r+2pr*h;//圓柱體的體積:pi*r*r*h;#include<iostream.h>#define pi 3.1415926class Point{public:Point(double a, double b):x(a),y(b){}double getx();double gety();~Point(){}protected:double x;double y;};class circle:public Point{public:circle(double a,double b,double c):Point(a,b){r=c;}double getS();double getC();~circle(){}protected:double r;};class ctylinder:public circle{public:ctylinder(double a,double b,double c,double h):circle(a,b,c){height=h;}double getbiaoianji();double gettiji();friend ostream& operator<<(ostream&,ctylinder& );~ctylinder(){}private:double height;};double Point:: getx(){return x;}double Point::gety(){return y;}double circle::getS(){return pi*r*r;}double circle::getC(){return 2*pi*r;}double ctylinder::getbiaoianji(){return(pi*r*r*2+2*pi*r*height) ;}double ctylinder::gettiji(){return(pi*r*r*height);}ostream& operator<<(ostream& output,ctylinder &c){output<<"橫座標為:"<<c.x<<"縱座標為:"<<c.y<<"半徑為:"<<c.r<<"高為:"<<c.height;return output;}int main(){ctylinder c(1,2,3,4);cout<<c<<endl;cout<<"面積為:"<<c.getbiaoianji()<<endl;cout<<"體積為:"<<c.gettiji()<<endl;return 0;}