在C++中,使用override
关键字可以显式地告诉编译器,当前函数是想要覆盖基类中的虚函数。
当在派生类中重写一个虚函数时,可以使用override
关键字来确保该函数确实覆盖了基类中的虚函数。如果基类中没有对应的虚函数,或者派生类中的函数签名与基类中的虚函数不匹配,编译器就会产生一个错误。
示例代码如下:
class Base {
public:
virtual void foo() {
cout << "Base foo" << endl;
}
};
class Derived : public Base {
public:
void foo() override {
cout << "Derived foo" << endl;
}
};
int main() {
Base* ptr = new Derived();
ptr->foo();
delete ptr;
return 0;
}
在上面的示例中,Derived
类中的foo
函数使用了override
关键字来重写Base
类中的foo
函数。当通过基类指针调用foo
函数时,会调用派生类中的函数,从而实现多态性。