目录
在 C++ 中,override
是一个关键字,用于明确地指示一个函数是基类虚函数的重写。使用 override
关键字可以提高代码的可读性和可维护性,同时帮助编译器检测潜在的错误。
一.基本用法
当你在一个派生类中重写基类中的虚函数时,可以使用 override
关键字。这样做可以确保你的函数确实重写了基类中的虚函数,而不是意外地定义了一个新函数。
class Base {
public:
virtual void doSomething() {
std::cout << "Base doSomething" << std::endl;
}
};
class Derived : public Base {
public:
void doSomething() override { // 明确表示这是重写函数
std::cout << "Derived doSomething" << std::endl;
}
};
二.作用
- 明确意图:通过使用
override
,开发者可以清楚地表明他们的意图是重写基类中的虚函数。 - 编译时检查:编译器会检查
override
函数是否确实重写了基类中的虚函数。如果基类中没有对应的虚函数,编译器会报错。
三.注意事项
override
只能用于虚函数。- 如果一个函数被标记为
override
,但并没有重写任何基类的虚函数,编译器会报错。 override
可以与final
关键字一起使用,表示这个函数不能被进一步重写。
class FinalDerived : public Derived {
public:
void doSomething() final override { // 表示这个函数不能被进一步重写
std::cout << "FinalDerived doSomething" << std::endl;
}
};
通过使用 override
,你可以确保你的代码更加健壮,减少因重写虚函数时出现的错误。