第十三周项目3 立体类族共有的抽象类
2015-06-02 13:20
316 查看
/* *Copyright(c)2014,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:曾晓 *完成日期:2015年 6月 2日 *版本号:v1.0 */ #include <iostream> using namespace std; class CSolid { public: virtual double area()=0; virtual double volume()=0; }; class CCube:public CSolid { public: CCube(double l):length(l) {} double area(); double volume(); private: double length; }; double CCube::area() { return 6*length*length; } double CCube::volume() { return length*length*length; } class CBall:public CSolid { public: CBall(double r):radius(r) {} double area(); double volume(); private: double radius; }; double CBall::area() { return 4*3.14159*radius*radius; } double CBall::volume() { return 3.14159*radius*radius*radius*4/3; } class CCylinder:public CSolid { public: CCylinder(double r,double h):radius(r),height(h) {} double area(); double volume(); private: double radius; double height; }; double CCylinder::area() { return 2*3.14159*radius*height+2*3.14159*radius*radius; } double CCylinder::volume() { return 3.14159*radius*radius*height; } int main() { CSolid *p; CCube a(2.5); cout<<"正方体的边长为2.5"<<endl; p=&a; double s1=p->area(); double v1=p->volume(); cout<<"正方体的表面积为:"<<s1<<endl; cout<<"正方体的体积为:"<<v1<<endl; CBall b(3.5); cout<<"球体的半径为3.5"<<endl; p=&b; double s2=p->area(); double v2=p->volume(); cout<<"球体的表面积为:"<<s2<<endl; cout<<"球体的体积为:"<<v2<<endl; CCylinder c(4.5,1.5); cout<<"圆柱体的底面半径为4.5,高为1.5"<<endl; p=&c; double s3=p->area(); double v3=p->volume(); cout<<"圆柱体的表面积为:"<<s3<<endl; cout<<"圆柱体的体积为:"<<v3<<endl; return 0; }
运行结果:
相关文章推荐
- nginx日志热切分
- onTouch事件试验(覆写onTouchEvent方法,同时设置onTouchListener)
- TJX:好买手养成记
- Teamwork(The eighth day of the team)
- SNMP详细资料
- php异常处理—设置顶层异常处理器
- [APP开发者转型为壕的正确方式]
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- js 滚轮事件 滚轮焦点图(轮播图)
- ACdream dfs 专题
- nginx 精准匹配
- 董明珠:创新不是要你偷人 挖人要交转会费
- 密码学学习篇之---盐值(Salt)
- Android照相机模块编程 照片颠倒问题及查询摄像头参数问题的解决
- java基础(一)
- 苹果如何实现一份设计稿支持多个尺寸?
- 简洁vim配置方案Janus(1)
- HDU-1254
- Hibernate HelloWorld-08 一对一的映射
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10