C++作业 8 - 6

沈芏

关注

阅读 63

2022-05-01

#include<bits/stdc++.h>
using namespace std;
const int PI = 3.14159;

class Shape
{
    public:
    Shape(){}
    virtual double getArea(){}
    virtual double getPerim(){}
};

class Rectangle : public Shape
{
    private:
        double Wide, Long;
        
    public:
    Rectangle(){Wide = 0, Long = 0;}
    Rectangle(double l, double w) : Wide(w), Long(l) {}
    
    double getPerim()
    {
        return (Wide + Long) * 2;
    }
    
    double getArea()
    {
        return Wide * Long;
    }
};

class Circle : public Shape
{
    private:
        double R;
        
    public:
    Circle(){R = 0;}
    Circle(double r) : R(r) {}
    
    double getPerim()
    {
        return R * 2;
    }
    
    double getArea()
    {
        return pow(R, 2) * PI;
    }
};

int main()
{
    Rectangle r(2.33, 2.33);
    cout << r.getPerim() << " " << r.getArea() << endl;
    
    Circle c(2.33);
    cout << c.getPerim() << " " << c.getArea() << endl;
    return 0;
}

应用vritual写虚函数时,要注意基类的虚函数要定义,不能只是声明。

精彩评论(0)

0 0 举报