您的位置:首页 > 其它

第14周项目4-立体类族共有的抽象类

2014-05-28 16:07 357 查看
/*
*Corpyright (c)2013,烟台大学计算机学院
*All right reseved.
*作者:张凯
*完成日期:2014年5月28日
*版本号:v1.0
*输入描述:
*问题描述:
*程序输出:
*问题分析:
*算法设计:
*/
#include<iostream>
#include<cstring>
using namespace std;
class CSolid
{
public:
virtual double area()=0;
virtual double volume()=0;
};
class CCube:public CSolid
{
public:
CCube(double a):length(a){}
~CCube(){}
double area()
{
return 6*length*length;
}
double volume()
{
return length*length*length;
}
private:
double length;
};
class CBall:public CSolid
{
public:
CBall(double r):rad(r){}
~CBall(){}
double area()
{
return 4*3.14*rad*rad;
}
double volume()
{
return 4/3*3.14*rad*rad*rad;
}
private:
double rad;
};
class CCylinder:public CSolid
{
public:
CCylinder(double r,double h):rad(r),heigth(h){}
~CCylinder(){}
double area()
{
return (2*3.14*rad*rad+2*3.14*rad*heigth);
}
double volume()
{
return 3.14*rad*rad*heigth;
}
private:
double rad;
double heigth;
};
int main()
{

//定义基类指针数组p,使它每一个元素指向一个派生类对象
CCube m1(4);
CBall m2(3);
CCylinder m3(2.6,6.4);
CSolid *p[3]={&m1,&m2,&m3};
cout<<"正方体的面积:"<<p[0]->area()<<";"<<"体积:"<<p[0]->volume()<<endl;
cout<<"球体的面积:"<<p[1]->area()<<";"<<"体积:"<<p[1]->volume()<<endl;
cout<<"圆柱体的面积:"<<p[2]->area()<<";"<<"体积:"<<p[2]->volume()<<endl;
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: