aiao aiao - 2 months ago 10
C++ Question

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

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?

Answer

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.