Sathish Krishnan Sathish Krishnan - 3 months ago 5
C++ Question

What is the 'override' keyword in C++ used for?

I am a beginner in C++. I have come across

override
keyword used in the header file that I am working on. May I know, what is real use of
override
, perhaps with an example would be easy to understand.

Answer

The override keyword serves two purposes:

  1. It shows the reader of the code that "this is a virtual method, that is overriding a virtual method of the base class."
  2. The compiler also knows that it's an override, so it can "check" that you are not altering/adding new methods that you think are overrides.

To explain the latter:

class base
{
  public:
    virtual int foo(float x) = 0; 
};


class derived: public base
{
   public:
     int foo(float x) override { ... do stuff with x and such ... }
}

class derived2: public base
{
   public:
     int foo(int x) override { ... } 
};

In derived2 the compiler will issue an error for "changing the type". Without override, at most the compiler would give a warning for "you are hiding virtual method by same name".

Comments