继承,虚拟函数

#include<bits/stdc++.h>
using namespace std;
class shape{
protected:
    int x,y;
    shape(int x = 0,int y = 0):x(x),y(y){}
    virtual ~shape(){}
    virtual double GetArea() = 0;// 纯虚函数,用于计算面积
};
class Rectangle : public shape{
protected:
    int Length,Width;
public:
    Rectangle(int Length,int Width):Length(Length),Width(Width){}
    double GetArea() override{//表示该函数是重写基类的虚函数
        return Length*Width;
    }
};

class Circle : public shape{
protected:
    int radius;
public:
    Circle(int radius):radius(radius){}
    double GetArea() override{
        return 3.14*radius*radius;
    }
};

class Square : public Rectangle{
public:
    Square(int side) : Rectangle(side,side){}
};
int main(){
    int Length,Width,radius,side;
    cin>>Length>>Width;
    Rectangle a(Length,Width);
    cout<<a.GetArea()<<endl;

    cin>>radius;
    Circle b(radius);
    cout<<b.GetArea()<<endl;

    cin>>side;
    Square c(side);
    cout<<c.GetArea()<<endl;
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务