title: How to call a base class's virtual function that is an input argument to a function
body: <p>using C++, I have</p>
  
  <pre><code>struct Base {
      virtual void stuff(/*base stuff*/);
  };
  
  struct Derived : public Base {
      void stuff(/*derived stuff*/); 
  };
  
  void function1(Derived&amp; obj){
     obj.stuff(); 
  }
  </code></pre>
  
  <p>In this scenario, function1 will use Derived's do() function. What if in function1, I want to call the Base class's do() function instead ? Will it work if I call function1 as
  <code>function1(dynamic_cast&lt;Base*&gt;(derived_obj_ptr))</code>?</p>