要求建立3个继承container的派生类cube,sphere与cylinder,让每一个派生类都包含虚函数surface_area()和volume( ),分别用来计算正方体、球体和圆柱体的表

#include<iostream>

using namespace std;

class wsq36_container{

protected:

 double wsq36_radius;

public:

 wsq36_container(double wsq36_radius1)

 {

  wsq36_radius=wsq36_radius1;

 }

 virtual double wsq36_surface_area()=0;

 virtual double wsq36_volume()=0;

};

class wsq36_cube:public wsq36_container             //声明一个正方体派生类cube

{ public:

wsq36_cube(double wsq36_radius1):wsq36_container(wsq36_radius1)

{ }

double wsq36_surface_area()                   //定义虚函数surface_area

{ return 6*wsq36_radius*wsq36_radius;

}

double wsq36_volume()                         //定义虚函数volume

{ return wsq36_radius*wsq36_radius*wsq36_radius;

}

};

class wsq36_sphere:public wsq36_container

{

public:

 wsq36_sphere(double wsq36_radius1):wsq36_container(wsq36_radius1)

 {}

 double wsq36_surface_area()

 {

  return 3.14*wsq36_radius*wsq36_radius*4;

 }

 double wsq36_volume()

 {

  return 4/3*3.14*wsq36_radius*wsq36_radius;

 }

};

class wsq36_cylinder: public wsq36_container                              //声明一个圆柱体派生类cylinder

{   double wsq36_height;

public:

wsq36_cylinder(double wsq36_radius1,double wsq36_height1):wsq36_container(wsq36_radius1)

{ wsq36_height=wsq36_height1;

}

double wsq36_surface_area()                                         //定义虚函数surface_area

{ return 2*3.1416*wsq36_radius*(wsq36_radius+wsq36_height);

}

double wsq36_volume()                                              //定义虚函数volume

{ return 3.1416*wsq36_radius*wsq36_radius*wsq36_height;

}

};

int main()

{

 wsq36_container *wsq36_ptr;

 wsq36_cube wsq36_obj1(5.0);

 wsq36_sphere wsq36_obj2(5.0);

 wsq36_cylinder wsq36_obj3(5.0,5.0);

 wsq36_ptr=&wsq36_obj1;                                                   //指针ptr指向正方体类对象obj1

 cout<<"这个正方体的表面积是:"<<wsq36_ptr->wsq36_surface_area()<<endl;    //求正方体的表面积

 cout<<"这个正方体的体积是:"<<wsq36_ptr->wsq36_volume()<<endl<<endl;      //求正方体的的体积

 wsq36_ptr=&wsq36_obj2;                                                   //指针ptr指向球体的类对象obj2

 cout<<"这个球体表面积是:"<<wsq36_ptr->wsq36_surface_area()<<endl;        //求球体的表面积

 cout<<"这个球体的体积是:"<<wsq36_ptr->wsq36_volume()<<endl<<endl;        //求球体的的体积

 wsq36_ptr=&wsq36_obj3;                                                   //指针ptr指向圆柱体类的对象obj3

 cout<<"这个圆柱体的表面积是:"<<wsq36_ptr->wsq36_surface_area()<<endl;    //求圆柱体的表面积

 cout<<"这个圆柱体的体积是:"<<wsq36_ptr->wsq36_volume()<<endl;            //求圆柱体的的体积

 system("pause");

 return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值