cpp声明一个shape抽象类在此基础上派生出Rectangle和Circle类二者都有GetArea函数计算对象的面积按下面的要求完成程序的编编制工作
以下是一个示例程序,按照要求声明了一个抽象类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对象。
原文地址: https://www.cveoy.top/t/topic/i9Xb 著作权归作者所有。请勿转载和采集!