给出上述代码的c++示例
时间: 2024-09-06 15:03:31 浏览: 43
绘制玫瑰花代码c++语言源码
由于您没有提供具体的代码片段,我将给出一个简单的C++多态示例,其中涉及一个基类`Shape`和两个派生类`Circle`和`Rectangle`。在这个例子中,我们将通过基类的指针调用不同的派生类对象的方法,展示多态的特性。
```cpp
#include <iostream>
using namespace std;
// 基类 Shape
class Shape {
public:
virtual void draw() = 0; // 纯虚函数,用于定义接口
virtual ~Shape() {} // 虚析构函数
};
// 派生类 Circle
class Circle : public Shape {
public:
void draw() override {
cout << "Drawing Circle" << endl;
}
};
// 派生类 Rectangle
class Rectangle : public Shape {
public:
void draw() override {
cout << "Drawing Rectangle" << endl;
}
};
// 函数使用基类指针调用draw方法
void drawShape(Shape* shape) {
shape->draw();
}
int main() {
Circle circle;
Rectangle rectangle;
// 使用基类指针指向派生类对象,并调用draw方法
Shape* shape1 = &circle;
Shape* shape2 = &rectangle;
drawShape(shape1); // 输出: Drawing Circle
drawShape(shape2); // 输出: Drawing Rectangle
delete shape1;
delete shape2;
return 0;
}
```
在这个例子中,我们定义了一个基类`Shape`,它有一个纯虚函数`draw()`。`Circle`和`Rectangle`类继承自`Shape`并分别实现了`draw()`方法。在`drawShape()`函数中,我们使用了基类指针来调用`draw()`方法,这正是多态的体现。不同的派生类对象通过相同的接口(基类指针)调用,表现出各自的行为。
阅读全文