学习目标
- 理解多态的两种形态:编译时多态与运行时多态
- 掌握
virtual关键字的使用 - 理解基类指针/引用如何指向派生类对象
- 了解纯虚函数、抽象类和接口
- 理解虚析构函数的重要性
什么是多态
多态(Polymorphism)字面意思是「多种形态」。在编程里,它指的是:同一个接口,在不同对象上表现出不同行为。
C++ 中多态有两种常见形式:
2026/7/17大约 6 分钟
virtual 关键字的使用多态(Polymorphism)字面意思是「多种形态」。在编程里,它指的是:同一个接口,在不同对象上表现出不同行为。
C++ 中多态有两种常见形式:
函数重载已经在 C++ 函数接口章节介绍。本篇只处理继承层次中三个容易混淆的概念:覆盖、隐藏,以及返回类型的特殊规则。
基类虚函数在派生类中提供对应实现:
#include <iostream>
class Shape {
public:
virtual void draw() const
{
std::cout << "shape\n";
}
virtual ~Shape() = default;
};
class Circle : public Shape {
public:
void draw() const override
{
std::cout << "circle\n";
}
};