Third practice 5
任务描述
定义一个Shape基类,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积。使用Rectangle类创建一个派生类Square。
测试输入:5
,6
,8
,9
预期输出:
The area of the Circle is 78.5
The area of the Rectangle is 48
The area of the Square is 81
源代码
#include <iostream>
using namespace std;
#define PI 3.14
class Shape
{
public:
Shape() {}
~Shape() {}
virtual float GetArea() { return -1; }
};
class Circle : public Shape
{
public:
virtual float GetArea(){return PI*Redius*Redius;}
Circle(float Redius){
this->Redius = Redius;
};
private:
float Redius;
};
class Rectangle : public Shape
{
public:
virtual float GetArea(){return this->length*this->wide;}
Rectangle(float length,float wide){
this->length = length;
this->wide = wide;
}
private:
float length,wide;
};
class Square : public Rectangle
{
public:
Square(float len);
~Square() {}
};
Square::Square(float len) :
Rectangle(len,len)
{
}
int main(){
float Redius,length,wide,len;
cin>>Redius>>length>>wide>>len;
Circle c(Redius);
cout<<"The area of the Circle is "<<c.GetArea()<<endl;
Rectangle r(length,wide);
cout<<"The area of the Rectangle is "<<r.GetArea()<<endl;
Square s(len);
cout<<"The area of the Square is "<<s.GetArea()<<endl;
return 0;
}