我是 C++ 的初学者。我遇到了我正在处理的头文件中使用的 override
关键字。请问,override
的真正用途是什么,或许举个例子就容易理解了。
最佳答案
override
关键字有两个用途:
- 它向代码的读者展示了“这是一个虚方法,它覆盖了基类的虚方法。”
- 编译器也知道它是一个覆盖,因此它可以“检查”您没有更改/添加您认为是覆盖的新方法。
解释后者:
class base
{
public:
virtual int foo(float x) = 0;
};
class derived: public base
{
public:
int foo(float x) override { ... } // OK
};
class derived2: public base
{
public:
int foo(int x) override { ... } // ERROR
};
在derived2
中,编译器会发出“改变类型”的错误。如果没有override
,编译器最多会给出一个警告“you are hidden virtual method by same name”。
关于c++ - C++ 中的 'override' 关键字是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18198314/