title: When my base class and derived have the same function, does it HAVE to be virtual?
body: <p>So i have a project I'm working on with quite a hierarchy. In the base class of this there is a function reset() that gets called throughout all the derived classes. All I'm confused about is that, since this reset in the derived class basically just resets it's private variables and then calls it's preceding (higher) class' reset() function does the reset function have to be virtual? </p>
  
  <p>Eg.</p>
  
  <pre><code>class Base
  {
  private:
     int some;
  public:
     void reset();
  };
  
  class Derive : public Base
  {
  private:
     int some1;
  public:
     void reset();
  };
  
  class Derive_two : public Derive
  {
  private:
     int some2;
  public:
     void reset();
  };
  </code></pre>
  
  <p>So basically the Derive_two class' reset function will then look as follows.</p>
  
  <pre><code>void Derive_two::reset()
  {
     some2 = 10;
     Derive::reset();
  }
  </code></pre>
  
  <p>Is this code right? Or does function reset() need to be of type virtual?</p>
  
  <p>Any and help is appreciated, thank-you.</p>