c++定义一个shape抽象类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area()
作者:野牛程序员:2024-10-29 17:06:16 C++阅读 2621
c++定义一个shape抽象类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area()
c++定义一个shape抽象类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area()
以下是一个 C++ 程序,定义了一个抽象类 Shape,并派生出 Rectangle 和 Circle 类,以计算各自的面积:
#include <iostream>
#include <cmath>
// 抽象类 Shape
class Shape {
public:
virtual double Area() const = 0; // 纯虚函数
};
// Rectangle 类
class Rectangle : public Shape {
private:
double width;
double height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
double Area() const override {
return width * height;
}
};
// Circle 类
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double Area() const override {
return M_PI * radius * radius; // 使用 M_PI 计算圆的面积
}
};
int main() {
Shape* shapes[2];
shapes[0] = new Rectangle(5.0, 3.0); // 创建 Rectangle 对象
shapes[1] = new Circle(2.0); // 创建 Circle 对象
for (int i = 0; i < 2; ++i) {
std::cout << "Area of shape " << i + 1 << ": " << shapes[i]->Area() << std::endl;
delete shapes[i]; // 释放内存
}
return 0;
}程序说明
Shape 类:
定义了一个抽象类,包含一个纯虚函数
Area(),用于计算面积。Rectangle 类:
继承自
Shape,包含宽度和高度。重写
Area()方法,计算矩形面积。Circle 类:
继承自
Shape,包含半径。重写
Area()方法,计算圆的面积,使用M_PI常量来表示 π。主函数:
创建了一个
Shape指针数组,用于存储不同形状的对象。通过循环计算并打印每个形状的面积。
最后释放动态分配的内存以防止内存泄漏。
这个程序展示了如何使用抽象类和多态来实现不同形状的面积计算。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

