在C++中,virtual关键字用于声明一个虚函数。虚函数是指在基类中声明的函数,可以在派生类中重新定义,且在使用基类指针或引用调用该函数时,会根据对象的实际类型来确定调用的是基类中的虚函数还是派生类中的重新定义的函数。
使用方法如下:
class Base {
public:
virtual void foo() {
// 基类中的虚函数定义
}
};
class Derived : public Base {
public:
void foo() override {
// 派生类中的重新定义的函数
}
};
在C++11之后,可以使用override
关键字来显式地标记派生类中的虚函数,以增强代码的可读性和可维护性。
Base* ptr = new Derived();
ptr->foo(); // 调用派生类中重新定义的虚函数
在上述示例中,基类指针ptr
指向派生类对象,调用ptr->foo()
会根据对象的实际类型来确定调用的是基类中的虚函数还是派生类中的重新定义的函数。