title: Does it make any sense to define "pure" virtual functions in the base class itself?
body: <p>The benefit of defining <strong>common</strong> virtual functions in the base class is that we don't have to redefine them in the derived classes then.  </p>
  
  <p>Even if we define <strong>pure</strong> virtual functions in the base class itself, we'll still have to define them in the derived classes too.  </p>
  
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  
  class speciesFamily
  {
      public:
          virtual void numberOfLegs () = 0;
  };
  
  void speciesFamily :: numberOfLegs ()
  {
      cout &lt;&lt; "\nFour";
  }
  
  class catFamily : public speciesFamily
  {
      public:
          void numberOfLegs ()
          {
              speciesFamily :: numberOfLegs ();
          }
  };
  </code></pre>
  
  <p>This may look fancy for sure, but are there any situations when it is <strong>beneficial</strong> to define a pure virtual function in the base class itself?   </p>