override
是 C++ 中的一个关键字,用于指示派生类中的成员函数应该重写基类中的虚函数。这个关键字确保了派生类提供了一个特定基类虚函数的新的实现。
当一个类(派生类)继承自另一个类(基类),并且基类中的某个函数被声明为 virtual
,那么派生类可以选择重写这个函数。使用 override
关键字可以明确表示这个意图,并且编译器会检查基类中是否存在相应的虚函数,以及函数签名是否匹配。
#include <iostream>
// 基类
class Base {
public:
virtual void display() {
std::cout << "Display from Base class" << std::endl;
}
};
// 派生类
class Derived : public Base {
public:
// 使用 override 关键字重写基类的虚函数
void display() override {
std::cout << "Display from Derived class" << std::endl;
}
};
int main() {
Base* basePtr = new Derived(); // 多态:基类指针指向派生类对象
basePtr->display(); // 调用的是派生类的 display 函数
delete basePtr;
return 0;
}
问题:尝试重写基类函数时,编译器报错提示没有匹配的虚函数。
原因:可能是函数签名不匹配,或者基类中没有相应的虚函数。
解决方法:
virtual
。问题:忘记使用 override
关键字,导致实际上没有重写基类函数。
原因:可能是因为函数签名不匹配,编译器将其视为一个新的成员函数而不是重写的虚函数。
解决方法:添加 override
关键字,并确保函数签名正确无误。
通过以上信息,你应该对 C++ 中的 override
关键字有了更深入的了解。如果在实际编程中遇到问题,可以根据上述解决方法进行调试。
领取专属 10元无门槛券
手把手带您无忧上云