c++练习3

实现一个模型的类层次结构:声明一个公共基类Model并派生出立方体(Cube)和圆柱体(Cylinder)两个类。

(把本题程序写成一个完整的程序也可,不一定分步书写。)
要求:
(1)声明Model为抽象基类,在其中声明一个求体积的纯虚函数(volume),且该类中具有一个数据成员m ,
此数据可作为立方体的边长、圆柱体底面圆半径。
(2)在两个派生类中添加适当的数据成员和构造函数。
(3)两个派生类都要覆盖抽象基类Model的求体积的纯虚函数(体积公式:立方体m3、圆柱体лm2h)。
在主函数中声明两个派生类的对象以及Model类型的指针,并通过该指针调用volume函数计算不同模型的体积。

#include<iostream>

using namespace std;

#define  PI  3.1416
 
class  Model {       
public:
   Model(double r)  { m=r; } 
   virtual   double volume() const=0; 
protected:  
   double  m; 
};

class Cube: public Model {     
public :
   Cube (double=0.0) ; 
   virtual double volume() const; 
};
Cube :: Cube (double a):Model(a){  }

double Cube:: volume () const    {  
   return   m * m* m;
}

class Cylinder: public Model   {
 public :
    Cylinder (double=0.0, double=0.0) ; 
    virtual  double volume() const; 
 private: 
     double   h;  
};

Cylinder:: Cylinder (double a, double b):Model(a),h(b) {    }

double Cylinder:: volume () const    { 
 return  PI* m * m* h ;
}

int main()       
 {
 Cube   cub(2.4) ; 
 Cylinder cyl(1,2); 
 Model *p[]={&cub, &cyl};
 for(int  i=0;i<2;i++)  
      cout<<" volume ="<<p[i]->volume()<<endl;
return 0;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值