立体类族共有的抽象类
2016-05-31 20:17
288 查看
#include <iostream>
using namespace std;
class CSolid
{
public:
virtual double area()const;//表面积
virtual double volume()const;//体积
};
class CCube:public CSolid{
public:
CCube(double a){A=a;}
double area()const{return A*A*6; }
double volume()const{return A*A*A;}
private:
double A;
};
class CBall:public CSolid{
public:
CBall(double r){R=r;}
double area()const{return 4*3.141593*R*R; }
double volume()const{return 3.141593*1.333*R*R*R;}
private:
double R;
};
class CCylinder:public CSolid{
public:
CCylinder(double r,double h){R=r;H=h;}
double area()const{return 3.141593*R*R*2+2*3.141593*R*H; }
double volume()const{return 3.141593*R*R*H;}
private:
double R,H;
};
int main( )
{
CSolid *p;
double s,v;
CCube x(30);
cout<<"立方体边长为 30 "<<endl;
p=&x;
s=p->area( );
v=p->volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
CBall y(4.5);
cout<<"球体半径为 4.5 "<<endl;
p=&y;
s=p->area( );
v=p->volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
CCylinder z(10,20);
cout<<"圆柱体底面半径、高分别为 10, 20"<<endl;
p=&z;
s=p->area( );
v=p->volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
return 0;
}
#include <iostream>
using namespace std;
class CSolid
{
public:
virtual double area()const;//表面积
virtual double volume()const;//体积
};
class CCube:public CSolid{
public:
CCube(double a){A=a;}
double area()const{return A*A*6; }
double volume()const{return A*A*A;}
private:
double A;
};
class CBall:public CSolid{
public:
CBall(double r){R=r;}
double area()const{return 4*3.141593*R*R; }
double volume()const{return 3.141593*1.333*R*R*R;}
private:
double R;
};
class CCylinder:public CSolid{
public:
CCylinder(double r,double h){R=r;H=h;}
double area()const{return 3.141593*R*R*2+2*3.141593*R*H; }
double volume()const{return 3.141593*R*R*H;}
private:
double R,H;
};
int main( )
{
CSolid *p;
double s,v;
CCube x(30);
cout<<"立方体边长为 30 "<<endl;
p=&x;
s=p->area( );
v=p->volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
CBall y(4.5);
cout<<"球体半径为 4.5 "<<endl;
p=&y;
s=p->area( );
v=p->volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
CCylinder z(10,20);
cout<<"圆柱体底面半径、高分别为 10, 20"<<endl;
p=&z;
s=p->area( );
v=p->volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
return 0;
}
相关文章推荐
- Android开发陷阱:利用PendingIntent传递唯一的Intent
- php项目开发经验-2个月学习php经历
- HDU 5363 Key Set
- 操作系统知识点整理
- 伯克利大学“机器学习(Practical Machine Learning)"课件及相关资料
- 从重庆滴滴和出租车争扯 看共享经济“转正困境”
- OC视频教程29课-第01讲 Classes
- Middle-题目123:335. Self Crossing
- Android图像处理(一)色调、饱和度、亮度
- iOS库的介绍以及如何使用CocoaPods管理库(2016最新版本)
- IOS面试题
- 地图 大头针
- C 字符串中sizeof() 和 strlen()
- 工资数组类
- HDU 4568 Hunter
- Guice 注入--(privateModule,intall(),expose())
- CF_602A - Two Bases(进制转换—水题)
- HTML5+CSS3-第二节(浏览器前缀、css新特征、文本溢出、新的颜色设定、透明设定、文本填充色、文本边框色、圆角)
- peda的帮助文档(自己翻译)
- 在Android应用中使用自定义证书的HTTPS连接(下)