2015.6.3立体雷族的抽象类
2015-06-03 09:22
134 查看
#include<iostream> using namespace std; class CSolid { public: virtual double area()=0; virtual double volume()=0; }; class CCube:public CSolid { private: double dLong; double dWidth; double dHigh; public: CCube(double a,double b,double c):dLong(a),dWidth(b),dHigh(c){}; double area(); double volume(); }; double CCube::area() { double a; a=dLong*dWidth+dHigh*dLong+dWidth*dHigh; return a; } double CCube::volume() { return (dLong*dWidth*dHigh); } class CBall:public CSolid { private: double dRadius; public: CBall(double a):dRadius(a){}; double area(); double volume(); }; double CBall::area() { double a; a=4*3.14*dRadius*dRadius; return a; } double CBall::volume() { double a; a=3.14*dRadius*dRadius*dRadius*4/3; return a; } class CCylinder:public CSolid { private: double dRadius; double dHigh; public: CCylinder(double a,double b):dRadius(a),dHigh(b){}; double area(); double volume(); }; double CCylinder::area() { double a; a=2*(3.14*dRadius*dRadius)+(2*3.14*dRadius)* dHigh; return a; } double CCylinder::volume() { double a; a=(3.14*dRadius*dRadius)*dHigh; return a; } int main() { CSolid *p; CCube a(1,2,3); p=&a; cout<<"长方体的表面积"<<p->area()<<endl; cout<<"长方体的体积"<<p->volume()<<endl; CBall b(4); p=&b; cout<<"球体的表面积"<<p->area()<<endl; cout<<"球体的体积"<<p->volume()<<endl; CCylinder c(5,6); p=&c; cout<<"圆柱的表面积"<<p->area()<<endl; cout<<"圆柱的体积"<<p->volume()<<endl; return 0; }
相关文章推荐
- 程序员技术练级攻略
- 解读ASP.NET 5 & MVC6系列(17):MVC中的其他新特性
- 正则
- java内存管理机制
- 什么是JSON?
- 记一次云计算测试实验-openstack-icehouse-安装nova
- ie6并不是不支持!important
- JNI快速入门
- 第13周 项目3 立体类族共有的抽象类
- 矩形覆盖
- java实现附件预览(openoffice+swftools+flexpaper)(解决jsp读取全盘文件问题)
- 【scikit-learn】scikit-learn的线性回归模型
- Linux服务架设篇--ping命令
- 第十三周【项目 - 链表类】
- 第十三周项目一 动物叫声 2
- windows下Python3配置beautifulsoup4
- 第十三周 程序阅读 (2)虚析构函数
- 第13周项目3-立体类族共有的抽象类
- 【Android笔记】Activity的四种启动模式
- 调用WCF的异步方法