举一个例子来体现C++多态的优点
时间: 2023-08-13 21:59:01 浏览: 180
C++中的多态性是面向对象编程的重要特性之一,它通过使用虚函数和指针/引用来实现。以下是一个简单的例子,展示了C++多态性的优点:
```cpp
#include <iostream>
class Shape {
public:
virtual void draw() {
std::cout << "Drawing a shape." << std::endl;
}
};
class Circle : public Shape {
public:
void draw() override {
std::cout << "Drawing a circle." << std::endl;
}
};
class Square : public Shape {
public:
void draw() override {
std::cout << "Drawing a square." << std::endl;
}
};
int main() {
Shape* shape1 = new Circle();
Shape* shape2 = new Square();
shape1->draw(); // 多态调用,实际调用的是Circle类的draw()函数
shape2->draw(); // 多态调用,实际调用的是Square类的draw()函数
delete shape1;
delete shape2;
return 0;
}
```
在上面的示例中,我们定义了一个基类 `Shape` 和两个派生类 `Circle` 和 `Square`。基类 `Shape` 中的 `draw()` 函数被声明为虚函数,并在派生类中进行了重写。在 `main()` 函数中,我们创建了两个指针,分别指向 `Circle` 和 `Square` 对象,并通过这些指针调用了 `draw()` 函数。
这里体现了多态的优点。虽然我们使用的是基类的指针,但在运行时,根据实际对象的类型,会动态地调用相应派生类的函数。这使得我们可以通过统一的接口处理不同类型的对象,使代码更加灵活和可扩展。此外,通过使用多态性,我们可以实现基于继承的代码重用和多层次的抽象。
阅读全文