您的位置:首页 > 其它

第十三周项目56-形状类族中的纯虚函数

2016-05-23 19:58 204 查看
问题及代码:

/*
*Copyright (c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:text.cpp
*作者:徐健
*完成日期:2015年23日
*版本号:v1.0
*
*问题描述:  写一个程序,定义抽象基类Shape
由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、
Triangle(三角形)。用如下的main()函数,求出定义的几个几何体的面积和。
*输入描述: 无
*程序输出:   几种几何体的面积和
*/
#include <iostream>
using namespace std;
//定义抽象基类
class Shape
{
public:
virtual double area()=0;
private :

};
class Circle:public Shape
{
public:
Circle(double r):r(r){}
double area()
{
return 3.14*r*r;
}
private :
double r;//半径
};
class Rectangle:public Shape
{
public:
Rectangle(double x,double y):length(x),width(y){}
double area()
{
return length*width;
}
private :
double length;
double width;
};
class Triangle:public Shape
{
public:
Triangle(double x,double y):buttom(x),high(y){}
double area()
{
return 0.5*buttom*high;
}
private :
double buttom;
double high;
};
int main()
{
Circle c1(12.6),c2(4.9);
Rectangle r1(4.5,8.4),r2(5.0,2.5);
Triangle t1(4.5,8.4),t2(3.4,2.8);
Shape*pt[6]={&c1,&c2,&r1,&r2,&t1,&t2};
double areas=0.0;
for(int i=0;i<6;i++)
{
areas=areas+pt[i]->area();
}
cout<<"totol of all areas="<<areas<<endl;
return 0;
}
运行结果:

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