title: Do ALL virtual functions need to be implemented in derived classes?
body: <p>This may seem like a simple question, but I can't find the answer anywhere else.</p>
  
  <p>Suppose I have the following:</p>
  
  <pre><code>class Abstract {
  public:
      virtual void foo() = 0;
      virtual void bar();
  }
  
  class Derived : Abstract {
  public:
      virtual void foo();
  }
  </code></pre>
  
  <p>Is it ok that class Derived does not implement the bar() function?
  What if not ALL of my derived classes need the bar() function, but some do.
  Do all of the virtual functions of an abstract base class need to be implemented in the derived classes, or just the ones that are pure virtual?
  Thanks</p>