这个怎么会是错的,我要怎么改才能让他正确。
#include<iostream>
using namespace std;
const double pi=3.14;
class Shape
{
public:
virtual double Area()=0;
virtual double Perimeter() = 0;
};
int main()
{
double r,a,b;
char *s[2]={"Circle:\n","Rectangle:\n"};
cin>>r>>a>>b;
Shape *ptr[]={new Circle(r),new Rectangle(a,b)};
for(int i=0;i<2;i++)
{
cout<<s[i];
cout<<"Area:"<<ptr[i]->Area()<<endl;
cout<<"Perimeter:"<<ptr[i]->Perimeter()<<endl;
}
return 0;
}
class Circle :public Shape
{
private:
double r;
public:
Circle(double rr)
{
r=rr;
}
double Area()
{
return pi*r*r;
}
double Perimete()
{
return 2*pi*r;
}
};
class Rectangle :public Shape
{
private:
double a;
double b;
public:
Rectangle(double a,double b) :a(a),b(b)
{
this->a=a;
this->b=b;
}
double Area()
{
return a*b;
}
double Perimete()
{
return (a+b)*2;
}
};