/* (程式頭部注釋開始)* 程式的著作權和版本聲明部分* Copyright (c) 2011, 煙台大學電腦學院學生 * All rights reserved.* 檔案名稱: * 作 者:鮑增凱 * 完成日期: 2012 年 5 月 28 日* 版 本 號: * 對任務及求解方法的描述部分* 輸入描述: * 問題描述: * 程式輸出: * 程式頭部的注釋結束*/#include <iostream>using namespace std;class CSolid{public:virtual double area()const=0;virtual double volume()const=0;};class CCube:public CSolid{public:CCube(double a):x(a){}double area()const;double volume()const;private:double x;};double CCube ::area()const{cout << (6*x*x);return 0;}double CCube ::volume()const{ cout<<(x*x*x); return 0;}class CBall:public CSolid{public:CBall(double r):R(r){}double area()const;double volume()const;private:double R;};double CBall ::area()const{cout<< (4*3.1415926*R*R);return 0;}double CBall ::volume()const{cout<< (4*R*R*R/3);return 0;}class CCylinder:public CSolid{public:CCylinder(double r,double h):R(r),H(h){}double area()const;double volume()const;private:double R,H;};double CCylinder ::area()const{cout<< (2*3.1415926*R*R+2*3.1415926*R*H);return 0;}double CCylinder ::volume()const{cout<< 3.1415926*R*R*H;return 0;}int main(){CSolid *p;CCube cCube(3);p=&cCube;cout<<"正方體面積為:";p->area();cout<<"體積為:";p->volume ();cout<<endl;CBall cBall(4);p=&cBall;cout<<"球面積為:";p->area();cout<<"體積為:";p->volume ();cout<<endl; CCylinder cCylinder(2,5);p=&cCylinder;cout<<"圓柱體面積為:";p->area();cout<<"體積為:";p->volume ();cout<<endl;system("pause");return 0;}