The override
keyword serves two purposes:
- It shows the reader of the code that “this is a virtual method, that is overriding a virtual method of the base class.”
- 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 { ... } // OK } class derived2: public base { public: int foo(int x) override { ... } // ERROR };
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”.
Related Posts:
- What is a lambda expression in C++11?
- ld: symbol(s) not found for architecture x86_64 error
- What is a smart pointer and when should I use one?
- Meaning of = delete after function declaration
- C++ std::priority_queue uses the lambda expression
- Usage and Syntax of std::function
- What exactly is nullptr?
- Difference between `constexpr` and `const`
- Split a string using C++11
- How to create timer events using C++ 11?
- What does T&& (double ampersand) mean in C++11?
- Segmentation fault error 11 C++
- Why doesn’t C++ have a garbage collector?
- Compiling C++11 with g++
- terminate called after throwing an instance of ‘std::invalid_argument’ what(): stoi
- What exactly is std::atomic?
- Issue with std::stol – ‘std::invalid_argument’ what(): stol
- terminate called after throwing an instance of ‘std::out_of_range’
- Cleanest way to copy a constant size array in c++11
- push_back vs emplace_back
- undefined reference to ‘std::cout’
- What is move semantics?
- expression preceding parentheses of apparent call must have (pointer-to-) function type
- C++ error: Undefined symbols for architecture x86_64
- C++ terminate called without an active exception
- Thread pooling in C++11
- How does std::forward work? [duplicate]
- Difference in make_shared and normal shared_ptr in C++
- What is std::move(), and when should it be used?
- C++: std does not have member “string”
- push_back vs emplace_back
- error: use of deleted function
- Call to implicitly deleted copy constructor in LLVM
- cc1plus: error: unrecognized command line option “-std=c++11” with g++
- error C2679: binary ‘<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)
- no match for ‘operator<<’ in ‘std::operator
- Warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11?
- Use the auto keyword in C++ STL
- Call to non-static member function without an object argument compiler error
- Does C++11 have C#-style properties?
- Iterator Loop vs index loop
- initialize a vector to zeros C++/C++11
- When is it safe to call this-> in constructor and destructor
- How to memset char array with null terminating character?
- How well is Unicode supported in C++11?
- How to automatically convert strongly typed enum into int?
- Why should I use a pointer rather than the object itself?
- too many initializers for ‘int [0]’ c++
- overloaded function with no contextual type information
- Creating folders in C++
- convert string to size_t
- Compiling C++11 with g++
- ERROR C2039: ‘vector’: is not a member of ‘std’
- Does static constexpr variable inside a function make sense?
- c++ vector bubble sort
- How to use bitmask?
- Differences between unique_ptr and shared_ptr
- What is a segmentation fault?
- What does “dereferencing” a pointer mean?
- check if a std::vector contains a certain object?
- Convert char to int in C and C++
- How to convert a char array to a string?
- How to fix a “invalid operands to binary expression” error?
- Is it possible to decompile a C++ executable file
- C++ Singleton design pattern
- How do I generate a random number between two variables that I have stored?
- How to print pthread_t
- make: g++: Command not found
- What is an ‘undeclared identifier’ error and how do I fix it?
- Use of “this” keyword in C++
- Why am I getting “undefined reference to main”
- Converting a vector
to string - std::string formatting like sprintf
- Sorting Characters Of A C++ String
- Sentinel while loop for C++
- libpng warning: iCCP: known incorrect sRGB profile
- C++: Expression must have a constant value when declaring array inside function
- What does ‘const static’ mean in C and C++?
- C++ wait for user input
- non-standard syntax; use ‘&’ to create a pointer to member
- How to shuffle a std::vector?
- Debug vs Release in CMake
- C++ Matrix Class
- access violation reading location c++
- C++ template constructor
- PlaySound in C++ Console application?
- Creation of Dynamic Array of Dynamic Objects in C++
- Compiling simple Hello World program on OS X via command line
- c++ reading csv file
- Why do you use typedef when declaring an enum in C++?
- creating dynamic array of string c++
- The CXX compiler identification is unknown
- Is there a standard sign function (signum, sgn) in C/C++?
- C++ compiler error: “return type specification for constructor invalid”
- Make / gcc cryptic error 2: how to have more information?
- REGSVR32: the module “xxxxx.dll” failed to load … dependent assembly could not be found
- Error: expression cannot be used as a function?
- What is a .h.gch file?
- MinGW .exe requires a few gcc dll’s regardless of the code?
- Converting bool to text in C++