在C ++中的哪里使用override关键字

时间:2018-11-06 07:53:15

标签: c++ c++11

哪个是在c ++ override.h中使用.cpp标识符的理想文件?

war.h

class TimeStone : public InfinityStone
{
private:
    bool capturedByThanos() override; #1
};

war.cpp

bool TimeStone::capturedByThanos() override #2
{
    return true;
}

1 个答案:

答案 0 :(得分:23)

在类的成员规范之外定义函数时,不能放置重写规范符。该语言不允许这样做,编译器会抱怨。因此,实际上只有一种选择。

除此之外,此选项也更有意义。在声明函数时,您要表达一个覆盖它的意图。因此,在表达您的意图时,请override 是有意义的。那就是您要编译器在此处检查的意图,即您要覆盖的意图。该声明也足以验证该函数最初是声明为虚拟的,并且您具有正确的签名。