2022/5/23 hgc_experience

#include  <iostream>
using  namespace  std;

class  Shape
{
public:
    Shape() {}
    ~Shape() {}
    virtual  float  GetArea() { return  -1; }
};

class  Circle : public  Shape
{
public :
    Circle(float radius):itsRadius(radius){}
    ~Circle () {}
    virtual float GetArea() {
        return 3.14 * itsRadius * itsRadius;
    }
private :
    float itsRadius;
};

class  Rectangle : public  Shape
{
public :
    Rectangle(float a, float b):itsa(a),itsb(b){}
    ~Rectangle() {}
    virtual float GetArea() {
        return itsa * itsb;
    }
private:
    float  itsa, itsb;
};

class  Square : public  Rectangle
{
public:
    Square(float  len);
    ~Square() {}
};

Square::Square(float  len) :Rectangle(len, len)
{
}

int  main()
{
    Shape* sp;

    sp = new  Circle(5);
    cout << "The  area  of  the  Circle  is  " << sp->GetArea() << endl;
    delete  sp;
    sp = new  Rectangle(4, 6);
    cout << "The  area  of  the  Rectangle  is  " << sp->GetArea() << endl;
    delete  sp;
    sp = new  Square(5);
    cout << "The  area  of  the  Square  is  " << sp->GetArea() << endl;
    delete  sp;
}

凉心哥哥的小宝藏 文章被收录于专栏

c++

全部评论

相关推荐

11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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