立体类族共有的抽象类
来源:互联网 发布:ssm 怎么打印sql 编辑:程序博客网 时间:2024/05/22 12:38
/* Copyright (c) 2016* All rights reserved 烟台大学计算机与控制工程学院* 文件名称:3.cpp* 作者:刘丽* 完成日期:2016年 6 月 15日* 版本号: v1.0【项目-立体类族共有的抽象类】 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。*/#include<iostream>#include<cstring>#define PI 3.1415926using namespace std;class CSolid{public: virtual double area()=0; virtual double volume()=0;};class CCube:public CSolid{protected: double l; double h; double w;public: CCube(double w,double l,double h):w(w),l(l),h(h){}; double area(); double volume();};class CBall:public CSolid{protected: double r;public: CBall(double r):r(r){}; double area(); double volume();};class CCylinder:public CSolid{protected: double r; double l; double h;public: CCylinder(double r,double l,double h):r(r),l(l),h(h){}; double area(); double volume();};double CCube:: area(){ return 2*(w*l+w*h+l*h);}double CCube::volume(){ return w*l*h;}double CBall:: area(){ return 4*PI*r*r;}double CBall::volume(){ return 4/3*PI*r*r*r;}double CCylinder:: area(){ return PI*r*r+l*h;}double CCylinder::volume(){ return 0.5*PI*r*r*h;}int main(){ CSolid *p; CCube r1(1,2,3); CBall r2(2); CCylinder r3(1,2,3); p=&r1; cout<<"area="<<p->area()<<endl; cout<<"volume="<<p->volume()<<endl; p=&r2; cout<<"area="<<p->area()<<endl; cout<<"volume="<<p->volume()<<endl; p=&r3; cout<<"area="<<p->area()<<endl; cout<<"volume="<<p->volume()<<endl; return 0;}
0 0
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- 立体类族共有的抽象类
- Qt之字体文件(TTF)
- XML与DTD
- 第十四周上机实践项目1(2):阅读程序
- FIREFOX 下载中文文件名出现乱码的java解决方案
- 好吧,第二篇
- 立体类族共有的抽象类
- 多线程以及底层实现
- 随机生成11位激活码
- 第15周 项目2---洗牌
- PackageInfo-获取权限为空
- 第14周程序阅读
- PowerDesigner 使用常见问题锦集(转载)
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- 多线程的同步方法及实现