6-5 抽象类Shape (20分)
请编写一个抽象类Shape,包括两个纯虚函数,分别为计算面积getArea()和计算周长getPerim()。通过Shape类派生出矩形类Rectangle和圆类Circle,并计算各自的面积和周长。
测试用例具体要求:输入1表示测试矩形类,之后输入矩形长和宽。输入2表示测试圆类,之后输入圆半径。
Shape类定义如下:
class Shape {
public:
virtual double getArea()=0;
virtual double getPerim()=0;
};
裁判测试程序样例:
#include <iostream>
using namespace std;
const double PI=3.14;
class Shape {
public:
virtual double getArea()=0;
virtual double getPerim()=0;
};
/* ------请在这里填写答案 ------*/
int main() {
Shape *p;
int n;
double w,h,r;
scanf("%d",&n);
switch(n) {
case 1: {
cin>>w>>h;
Rectangle rect(w,h);
cout<<"area="<<rect.getArea()<<endl;
cout<<"perim="<<rect.getPerim()<<endl;
break;
}
case 2: {
cin>>r;
Circle c(r);
cout&