1.创建图像类Shape,包含纯虚函数area(),表示计算图形的面积; 2.圆形类Circle继承于Shape包含函数area(),用于计算面积。 3.矩形类Rect继承于Shape,包含函数area(),用于计算面积。 4.用多态技术,计算圆形和矩形的面积。其他变量和函数根据需要自行定义。
时间: 2024-02-05 12:13:43 浏览: 43
深入解析C++编程中的纯虚函数和抽象类
下面是一个实现上述要求的 C++ 代码示例:
```cpp
#include <iostream>
using namespace std;
// 抽象基类 Shape
class Shape {
public:
virtual double area() = 0; // 纯虚函数,计算面积
};
// 圆形类 Circle,继承自 Shape
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double area() { return 3.14 * radius * radius; } // 重写父类的 area 函数,计算圆形面积
};
// 矩形类 Rect,继承自 Shape
class Rect : public Shape {
private:
double width, height;
public:
Rect(double w, double h) : width(w), height(h) {}
double area() { return width * height; } // 重写父类的 area 函数,计算矩形面积
};
int main() {
// 创建圆形和矩形对象,分别计算它们的面积
Circle c(5);
Rect r(3, 4);
cout << "圆形的面积是:" << c.area() << endl;
cout << "矩形的面积是:" << r.area() << endl;
return 0;
}
```
在上述代码中,抽象基类 `Shape` 包含了一个纯虚函数 `area()`,表示计算图形面积的方法。圆形类 `Circle` 和矩形类 `Rect` 都继承自 `Shape`,并重写了 `area()` 方法以计算它们自己的面积。在 `main()` 函数中,我们创建了一个圆形对象和一个矩形对象,并分别调用它们的 `area()` 方法来计算它们的面积。由于 `Circle` 和 `Rect` 都是 `Shape` 的派生类,因此可以通过多态技术,用基类指针来访问它们的 `area()` 方法。
阅读全文