设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。
main()函数使用的贺老上的。
/** Copyright (c) 2015,烟台大学计算机学院* All right reserved.* 作者:邵帅* 文件:Demo.cpp* 完成时间:2015年06月07日* 版本号:v1.0*/#include运行结果:#include using namespace std;const double pi=3.14;class CSolib{public: virtual double area()=0; virtual double volume()=0;};class CCube:public CSolib{private: double length;public: CCube(double l):length(l){} double area(); double volume();};double CCube::area(){ return (6*length*length);}double CCube::volume(){ return (length*length*length);}class CBall:public CSolib{private: double radius;public: CBall(double r):radius(r){} double area(); double volume();};double CBall::area(){ return (4*pi*radius*radius);}double CBall::volume(){ return (pi*radius*radius*radius*4/3);}class CCylinder:public CSolib{private: double radius; double height;public: CCylinder(double r,double h):radius(r),height(h){} double area(); double volume();};double CCylinder::area(){ return (2*pi*radius*radius+2*pi*radius*height);}double CCylinder::volume(){ return (pi*radius*radius*height);}int main(){ CSolib *p; double s,v; CCube x(30); cout<<"立方体边长为 30 "< area(); v=p->volume(); cout<<"表面积:"< <area(); v=p->volume(); cout<<"表面积:"< <area(); v=p->volume(); cout<<"表面积:"< <
@ Mayuko