在C++中,覆盖(Override)是指子类提供特定于其自身实现的基类虚函数。为了实现覆盖操作,你需要遵循以下步骤:
- 在子类中声明与基类虚函数具有相同名称、相同参数列表和相同返回类型的成员函数。
- 在子类中实现该成员函数,提供特定的实现逻辑。
- 如果需要,可以在子类中重载其他基类成员函数,以提供不同的行为。
下面是一个简单的示例,演示了如何在C++中覆盖基类的虚函数:
#include// 基类 class Base { public: virtual void display() { std::cout << "Display from Base class" << std::endl; } }; // 子类 class Derived : public Base { public: // 覆盖基类的虚函数 void display() override { std::cout << "Display from Derived class" << std::endl; } }; int main() { Base* basePtr = new Derived(); // 指向子类的指针指向基类对象 basePtr->display(); // 调用子类覆盖的display函数 delete basePtr; return 0; }
在这个示例中,我们创建了一个名为Base
的基类,其中包含一个名为display
的虚函数。然后,我们创建了一个名为Derived
的子类,该类继承自Base
并覆盖了display
函数。在main
函数中,我们创建了一个指向Derived
对象的基类指针,并通过该指针调用覆盖后的display
函数。