#include <iostream>

class Shape {
public:
    virtual double GetArea() = 0;
};

class Rectangle : public Shape {
private:
    double m_Width;
    double m_Height;
public:
    Rectangle(double width = 0, double height = 0) : m_Width(width), m_Height(height) {}

    double GetArea() {
        return m_Width * m_Height;
    }
};

class Circle : public Shape {
private:
    double m_Radius;
public:
    Circle(double radius = 0) : m_Radius(radius) {}

    double GetArea() {
        return 3.14 * m_Radius * m_Radius;
    }
};

int main() {
    Shape* shapes[2];
    shapes[0] = new Rectangle(5, 10);
    shapes[1] = new Circle(3);

    for (int i = 0; i < 2; i++) {
        std::cout << "Area: " << shapes[i]->GetArea() << std::endl;
    }

    delete shapes[0];
    delete shapes[1];

    return 0;
}

输出:

Area: 50
Area: 28.26
cpp声明一个shape抽象类在此基础上派生出Rectangle和Circle类二者都有GetArea函数计算对象的面积按下面的要求完成程序的编编制工作1Rectangle类有m_Widthm_Helght属性;2Circle类有m_Radlus属性;3分别编写Rectangle类和Circle类带默认参数的构造函数4编写主函数对RectangleCircle类进行测试使它们以统一的操作界面输出面

原文地址: https://www.cveoy.top/t/topic/i9Xc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录