以下是一个示例程序,按照要求声明了一个抽象类Shape,以及派生类Rectangle和Circle,它们都有GetArea()函数计算面积。

#include <iostream>

class Shape {
public:
    virtual double GetArea() const = 0; // 纯虚函数,表示Shape是抽象类
};

class Rectangle : public Shape {
private:
    double width;
    double height;

public:
    Rectangle(double w, double h) : width(w), height(h) {}

    double GetArea() const override {
        return width * height;
    }
};

class Circle : public Shape {
private:
    double radius;

public:
    Circle(double r) : radius(r) {}

    double GetArea() const override {
        return 3.14159 * radius * radius;
    }
};

int main() {
    Rectangle rectangle(3, 4);
    Circle circle(5);

    std::cout << "Rectangle area: " << rectangle.GetArea() << std::endl;
    std::cout << "Circle area: " << circle.GetArea() << std::endl;

    return 0;
}

在这个程序中,Shape类是一个抽象类,它有一个纯虚函数GetArea(),表示每个派生类都必须实现这个函数。

Rectangle和Circle类都继承自Shape类,并重写了GetArea()函数来计算矩形和圆的面积。

在main函数中,创建了一个Rectangle对象和一个Circle对象,然后使用它们的GetArea()函数分别计算并输出它们的面积。

注意:由于Shape类是抽象类,无法创建Shape对象,只能创建Rectangle和Circle对象。

cpp声明一个shape抽象类在此基础上派生出Rectangle和Circle类二者都有GetArea函数计算对象的面积按下面的要求完成程序的编编制工作

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

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