请用多态机制,编写一个程序计算三角形、矩形、圆形这三种图形的面积
设计一个图形(shape)类,类中有数据成员x、y,成员函数有构造函数、求面积函数及输出函数,后两个函数定义为纯虚函数。
由shape类派生出三角形类、矩形类和圆形类。,为矩形的长和宽,
在三角形类中x、y分别为三角形的底和高,定义求三角形面积函数及输出函数的具体实现。
在矩形类中x、y分别为三角形的长和宽,定义求矩形面积函数及输出函数的具体实现。
在圆形类中x为圆的半径,定义求圆面积函数及输出函数的具体实现(pai=3.14)。
输入x,y的值,输出各图形面积值。
输入:10 10
triangleArea=50
rectangleArea=100
circleArea=314
#include<iostream>
using namespace std;
class Shape
{
protected:
double x,y;
public:
Shape(double a,double b){x=a,y=b;}
virtual double area() {}
virtual void print(){}
};
class tri:public Shape
{
public:
tri(double a,double b):Shape(a,b){}
double area(){return x*y*0.5;}
void print(){cout<<"triangleArea="<<area()<<endl;}
};
class rec:public Shape
{
public:
rec(double a,double b):Shape(a,b){}
double area(){return x*y;}
void print(){cout<<"rectangleArea="<<area()<<endl;}
};
class circle:public Shape
{
public:
circle(double a,double b):Shape(a,b){}
double area(){return 3.14*x*x;}
void print(){cout<<"circleArea="<<area()<<endl;}
};
int main()
{
double a,b;
cin>>a>>b;
tri tri1(a,b);
rec rec1(a,b);
circle circle1(a,b);
tri1.print();
rec1.print();
circle1.print();
return 0;
}