求c++程序设计问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 21:56:47
编写程序,定义一个抽象图形基类Shape,由它派生3个子类:Circle(圆形类)、Rectangle(矩形类)、Triangle(三角形类),在类中用虚函数分别计算图形面积。主函数中,每个子类定义一个对象,用基类指针数组,使其元素分别指向这些子类对象,调用虚函数,求3个子类对象的面积之和。(

//程序除了满足你要求输出了面积,还输出了各个图形的特性,便于你检验结果正误,希望能令你满意:
#include<iostream>
#include<cmath>
#define Pi 3.14
using namespace std;
class Shape
{
public:
virtual void Getarea()=0;
};
class Circle:public Shape
{
public:
Circle(float cr):r(cr){}
virtual void Getarea();
protected:
float r;
};
void Circle::Getarea()
{
cout<<"Circle:"<<r<<endl;
cout<<"Area:"<<Pi*r*r<<endl;
}
class Rectangle:public Shape
{
public:
Rectangle(float l,float w):lonth(l),width(w){}
virtual void Getarea();
protected:
float lonth;
float width;
};
void Rectangle::Getarea()
{
cout<<"Rectangle:"<<lonth<<" "<<width<<endl;
cout<<"Area:"<<lonth*width<<endl;
}
class Triangle:public Shape