虚函数、函数重写与接口
1. 虚函数(Virtual Function)
在面向对象编程中,虚函数(Virtual Function)是通过动态分派(Dynamic Dispatch)调用的成员函数。动态分派允许基类指针或引用调用派生类中重写的虚函数,从而实现多态性。这种机制在运行时根据对象的实际类型选择并调用正确的函数实现。
虚函数的声明使用 virtual
关键字。例如:
class Shape {
public:
virtual void draw() = 0; // 纯虚函数
};
class Circle : public Shape {
public:
void draw() override final { /* Circle drawing code */ }
};
class Square : public Shape {
public:
void draw() override final { /* Square drawing code */ }
};
在这个例子中, Shape
类的 draw
方法是一个纯虚函数,表示 Shape
类本身不会提供 draw
方法的实现,而是要求所有派生类必须实现该方法。
2. 动态分派(Dynamic Dispatch)
动态分派是指在运行时根据对象的实际类型选择并调用虚成员函数的实现。这种机制使得基类指针或引用