用抽象类Shape作为图形类的基类,设置一个求面积的虚函数Area
时间: 2023-06-10 12:06:06 浏览: 144
好的,下面是一个示例代码:
```cpp
#include <iostream>
using namespace std;
// 抽象类 Shape
class Shape {
public:
// 纯虚函数,需要被子类实现
virtual double Area() = 0;
};
// 圆形类 Circle
class Circle : public Shape {
public:
Circle(double r) : radius(r) {}
double Area() override {
return 3.14 * radius * radius;
}
private:
double radius;
};
// 矩形类 Rectangle
class Rectangle : public Shape {
public:
Rectangle(double w, double h) : width(w), height(h) {}
double Area() override {
return width * height;
}
private:
double width;
double height;
};
int main() {
// 创建 Circle 和 Rectangle 对象
Circle c(2);
Rectangle r(3, 4);
// 使用基类指针调用各自的 Area 函数
Shape* p = &c;
cout << "Circle Area: " << p->Area() << endl;
p = &r;
cout << "Rectangle Area: " << p->Area() << endl;
return 0;
}
```
在这个代码中,我们定义了一个抽象类 `Shape`,作为图形类的基类。`Shape` 类中有一个纯虚函数 `Area`,它需要被子类实现。然后我们创建了两个子类 `Circle` 和 `Rectangle`,它们都继承自 `Shape` 类,并且实现了 `Area` 函数。最后在 `main` 函数中,我们使用基类指针 `p` 分别调用了 `Circle` 和 `Rectangle` 的 `Area` 函数,实现了多态。
阅读全文