C++多态(抽象基类派生三个类)

发布时间 2023-04-19 00:06:26作者: 涵宝666

#include<iostream>
#include<math.h>
using namespace std;
#define PI 3.1415926//宏定义圆周率
class Shape{

};//定义一个抽象类
class Circle:public Shape{
double R;

public:Circle(double r):R(r){}
void area(){printf("%.2lf\n",PI*R*R);}//定义void类型的返回值area,注意输出格式
};
class Rectangle:public Shape{
double a,b;

public:Rectangle(double A,double B):a(A),b(B){}//传参
void area(){printf("%.2lf\n",a*b);}
};
class Triangle:public Shape{
double m,n;

public:Triangle(double M ,double N):m(M),n(N){}
void area(){printf("%.2lf",m*n/2);}
};
int main()
{
double R,a,b,m,n;
cin>>R>>a>>b>>m>>n;
Circle c1(R);

Rectangle c2(a,b);

Triangle c3(m,n);
c1.area();
c2.area();
c3.area();
}