title: Is it recommended to explicitly make overriding functions virtual?
body: <p>In times before C++11 when a virtual function was overriden in a derived class, it was recommended to add the virtual keyword also to the derived class function to make the intention clear.</p>
  
  <p>Nowadays such a function is marked "override" which kind of includes the notion that there must be a virtual base function. Therefore I am now preferring to omit the virtual:</p>
  
  <pre><code>class Derived: public Base {
  public:
    void Overriden() override;
    // Instead of: virtual void Overriden() override;
  };
  </code></pre>
  
  <p>However this leads to an IntelliSense error in MSVC 2012:
  the 'override' modifier requires a virtual function declaration with an explicit 'virtual' keyword</p>
  
  <p>Obviously the compiler compiles the class, but the error makes me think about it. Are there still valid reasons to add the virtual keyword?</p>