title: Using C++, how to call a base class method from a derived class method and apply this to an object passed as an argument?
body: <p>I can't figure out how to call a base class method from a derived class method but concurrently applying this method call at an object passed as argument.  </p>
  
  <p>What I mean is this:</p>
  
  <pre><code>class Animal
  { 
      virtual void eat(Animal&amp; to_be_eaten) = 0;
   };
  
  class Carnivores: public Animal
  { 
      virtual void eat(Animal&amp; to_be_eaten) { /*implementation here*/}
  
  };
  
  class Wolf : public Carnivores
  { 
      virtual void eat(Animal&amp; to_be_eaten)
      { /*call eat method(of Base class) of Base to_be_eaten here*/ }
   }
  </code></pre>
  
  <p>I thought of something like this</p>
  
  <pre><code> dynamic_cast&lt;Carnivores&amp;&gt;(to_be_eaten).eat(*this) //and got a segmentation fault
  </code></pre>
  
  <p>Is there any way for this to be done?</p>
  
  <p>Thank you!</p>
  
  <p><strong>New edit::
  Updated the code</strong></p>