第12周项目3立体类族共有的抽象类

来源:互联网 发布:ssh项目源码书籍推荐 编辑:程序博客网 时间:2024/06/01 10:23
编号及代码:/**Copyright(c)2015,烟台大学计算机与工程学院*All rights reserved;*文件名称:score.cpp*作者:范星月*完成日期:2015年6月1日*版本号:v1.0**问题描述:*问题输入:设计一个抽象类,含有用于求表面积和体积的两个纯虚函数,设计派生类CCube,CBall,CCylinder,分别表示正方体,球体积圆柱体,在测试函数中定义指向基类的指针P,要求利用这个P指针,能够求出正方体,球体,圆柱体对象的表面积和体积*问题输出:*/#include <iostream>using namespace std;class CSolid{public:    virtual void  area()=0;    virtual void  volume()=0;};class CCube:public CSolid{public:    CCube(double a1):a(a1){}     void   area()    {      cout<< 6*a*a<<endl;    }    void   volume()    {     cout<< a*a*a<<endl;    }private:    double a;};class CBall:public CSolid{public:    CBall(double r):radius(r){}    void   area()    {      cout<< 4*3.14*radius*radius<<endl;    }    void   volume()    {        cout<< 4/3*3.14*radius*radius*radius<<endl;    }private:    double radius;};class CCylinder:public CSolid{public:    CCylinder(double r,double h):radius(r),height(h){}    void  area()    {      cout<< 2*3.14*radius*radius+2*3.14*radius*height<<endl;    }    void   volume()    {       cout<< 3.14*radius*radius*height<<endl;    }private:    double radius,height;};int main(){  CSolid *p;   CCube c1(2.0);   p=&c1;   p->area();   p->volume();   CBall r1(1.0);   p=&r1;   p->area();   p->volume();   CCylinder y1(2.0,1.0);   p=&y1;   p->area();   p->volume();return 0;}

0 0
原创粉丝点击