第十三周 任务四 设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数

#include<iostream>      
#include<Cmath>      
using namespace std;  
const double pi=3.1415926;    
{
public:  
    virtual double superficial_areas()=0;//表面积    
    virtual double volume()=0;    //体积      
};  
    
class CCube: public CSolid  //利用抽象基类定义正方体类      
{    
public:    
    CCube(double CCube_long);//构造函数      
    double superficial_areas();  
    double volume();  
private:    
    double CCube_long;    
};  
  
class CBall: public CSolid    //利用抽象基类定义球体类        
{    
   CBall(double CBall_long);//构造函数      
   ~CBall(){}    
    double superficial_areas();  
   double volume();    
private:    
   double CBall_long;    
};   
 
class CCylinder: public CSolid  //利用抽象基类定义圆柱体类      
{    
public:    
    CCylinder(double CCylinder_bottom,double CCylinder_high); //构造函数      
    ~CCylinder(){}    
    double superficial_areas();  
   double volume();   
private:    
    double CCylinder_bottom;  
    double CCylinder_high;    
};  
CCube::CCube(double CCube_long)//构造函数   
{  
    this->CCube_long=CCube_long;  
}  
double CCube::superficial_areas()  
{  
return (6*CCube_long*CCube_long);  
}  
double CCube::volume()  
{  
    return (CCube_long*CCube_long*CCube_long);  
}  
CBall::CBall(double CBall_long)  
{  
    this->CBall_long=CBall_long;  
}  
double CBall::superficial_areas()  
{  
    return (4*pi*CBall_long*CBall_long);  
  
 
    return (4*pi*CBall_long*CBall_long*CBall_long/3);  
}  
CCylinder::CCylinder(double CCylinder_bottom,double CCylinder_high)  
{  
   this->CCylinder_bottom=CCylinder_bottom;  
    this->CCylinder_high=CCylinder_high;  
}  
double CCylinder::superficial_areas()   
{  
    return (2*pi*CCylinder_bottom*CCylinder_bottom+2*pi*CCylinder_bottom*CCylinder_high);  
double CCylinder::volume()  
 
  
int main()  
{  
    CCube CCube1(12.6);    
    CBall CBall1(4.5);       
    CSolid *p;  
    p=&CCube1;  
   cout<<"totol of CCube areas="<<p->superficial_areas()<<endl;  
    cout<<"totol of CCube volume="<<p->volume()<<endl;   
    p=&CBall1;  
    cout<<"totol of CBall areas="<<p->superficial_areas()<<endl; 
    cout<<"totol of CBall volume="<<p->volume()<<endl;    
   p=&CCylinder1;  
   cout<<"totol of CCylinder areas="<<p->superficial_areas()<<endl;    
   cout<<"totol of CCylinder volume="<<p->volume()<<endl;   
    system("pause");  
    return 0; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值