cpp:编写一个程序,定义抽象基类Figure,由它派生出3个派生类:Triangle(三角形)、Square(矩形)、Circle(圆)。用虚函数分别计算几种图形的面积(要求:实现运行时的多态性)。
时间: 2024-12-12 10:18:13 浏览: 9
在C++中,我们可以创建一个抽象基类`Figure`,然后让`Triangle`、`Square`和`Circle`这三个类作为其派生类。为了实现运行时多态性,我们需要利用虚函数和纯虚函数。下面是一个简单的示例:
```cpp
#include <iostream>
// 抽象基类 Figure
class Figure {
public:
// 纯虚函数,表示需要子类实现的特性
virtual double getArea() const = 0;
};
// 派生类 Triangle
class Triangle : public Figure {
private:
double base;
double height;
public:
Triangle(double b, double h) : base(b), height(h) {}
double getArea() const override { return 0.5 * base * height; }
};
// 派生类 Square
class Square : public Figure {
private:
double side;
public:
Square(double s) : side(s) {}
double getArea() const override { return side * side; }
};
// 派生类 Circle
class Circle : public Figure {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double getArea() const override { return M_PI * radius * radius; } // 使用 π 的近似值
};
int main() {
Figure* shapes[] = {new Triangle(3, 4), new Square(5), new Circle(2)};
for (const auto& shape : shapes) {
std::cout << "Shape area: " << shape->getArea() << std::endl;
delete shape; // 注意在使用完对象后释放内存
}
return 0;
}
阅读全文