6.14给出抽象基类建立派生类计算正方体,球体,圆柱体的表面积及体积

来源:互联网 发布:php爬虫框架beanbun 编辑:程序博客网 时间:2024/04/28 21:58
#include<iostream>
using namespace std;
class container{
protected:
double radius;
public:
container(double r)
{radius=r;
}
virtual double surface_area()=0;
virtual double volume()=0;

}; 
class cube:public container{
public:
cube(double r):container(r)
{ };
double surface_area()
{cout<<"这个正方体的表面积为:"<<6*radius*radius<<endl;
}
double volume()
{cout<<"这个正方体的体积为:"<<radius*radius*radius<<endl;
}
};
class sphere:public container{
public:
sphere(double r):container(r){ 
};
double surface_area()
{cout<<"这个球体的表面积为:"<<4*3.14*radius*radius<<endl;
}
double volume()
{cout<<"这个球的体积为:"<<4/3*3.14*radius*radius*radius<<endl;
}
};
class cyclinder:public container{
public:
cyclinder(double r,double h):container(r){ 
high=h;
}
double surface_area()
{cout<<"这个圆柱体的表面积为:"<<2*3.14*radius*radius+3.14*radius*high<<endl;
}
double volume()
{cout<<"这个圆柱体的体积为:"<<3.14*radius*radius*high<<endl;
}
protected:
double high;
};
 int main()
 {
  container *p;
  cube obj1(6.0);
  sphere obj2(5.0);
  cyclinder obj3(6.0,5.0);
  p=&obj1;
  p->surface_area();
  p->volume(); 
  p=&obj2;
  p->surface_area();
  p->volume();
  p=&obj3;
  p->surface_area();
  p->volume();
  return 0;
 }
0 0
原创粉丝点击