/** 程式的著作權和版本聲明部分* Copyright (c)2013, 煙台大學電腦學院學生* All rightsreserved.* 檔案名稱:score.cpp* 作 者: 劉元龍* 完成日期: 2013 年5 月 31 日* 版本號碼: v1.0* 輸入描述:* 問題描述:* 輸出:*/#include<iostream>using namespace std;//空基類class csolid{ public: virtual void area() { cout<<"沒和我說資訊怎麼求:"; } virtual void v() { cout<<"沒和我說資訊怎麼求!"; }};//正方體類class cball:public csolid{ public: cball(double); void area(); void v(); protected: double d;};cball::cball(double R){ d=R;}void cball::area(){ double s; s=d*d; cout<<"面積為:" <<s<<" ";}void cball::v(){ double v; v=d*d*d; cout<<"體積為:"<<v; cout<<endl;}//球類class ccylinder:public csolid{ public: ccylinder(double); void area(); void v(); protected: double r;};ccylinder::ccylinder(double X){ r=X;}void ccylinder::area(){ double s; s=4*3.14*r*r; cout<<"面積為:"<< s<<" ";}void ccylinder::v(){ double v; v=(4/3)*r*r*r; cout<<"體積為:"<< v<<endl;}//圓柱體class ccube:public csolid{ public: ccube(double,double); void area(); void v(); protected: double a,b;};ccube::ccube(double X,double Y){ a=X;//圓柱體地面半徑 b=Y;//圓柱體高}void ccube::area(){ double s; s=(3.14*2*a*b)+(2*3.14*a*a); cout<<"面積為:"<< s<<" ";}void ccube::v(){ double v; v=3.14*a*a*b; cout<<"體積為:"<< v<<endl;}int main(){ ccube c1(12,6); cball r1(4); ccylinder t1(4.5); csolid *p=&c1; p->area(); p->v(); p=&r1; p->area(); p->v(); p=&t1; p->area(); p->v(); return 0;}
運行結果: