Is the 'override' keyword just a check for a overridden virtual method?

c++, c++-faq, c++11, overriding, virtual-functions

Solution

That's indeed the idea. The point is that you are explicit about what you mean, so that an otherwise silent error can be diagnosed:

struct Base
{
    virtual int foo() const;
};

struct Derived : Base
{
    virtual int foo()   // whoops!
    {
       // ...
    }
};

The above code compiles, but is not what you may have meant (note the missing `const`). If you said instead, `virtual int foo() override`, then you would get a compiler error that your function is not in fact overriding anything.

Problem

As far as I understand, the introduction of `override` keyword in C++11 is nothing more than a check to make sure that the function being implemented is the `override`ing of a `virtual` function in the base class. Is that it?

Original source

Related problems