继承,虚拟函数

#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;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 15:07
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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