title: Pure virtual functions and unused arguments in child functions in C++
body: <p>I have the following:</p>
  
  <pre><code>class Parent {
  public:
      virtual bool foo(vector&lt;string&gt; arg1, vector&lt;string&gt; arg2) = 0;
  };
  
  class Child : public Parent {
  public:
      bool foo(vector&lt;string&gt; arg1, vector&lt;string&gt; arg2);
  };
  
  // arg1 and arg2 not used - GIVES WARNING
  bool Child::foo(vector&lt;string&gt; arg1, vector&lt;string&gt; arg2) {
      return false;
  }
  </code></pre>
  
  <p>There is no Parent implementation of foo(...) because it is a pure virtual function.  The parent says that foo takes two vector arguments.  The child implements it correctly with two string arguments but they're not used.  HOWEVER, some children of Parent WILL use these arguments so they need to always be there.</p>
  
  <p>Is there any way I can use overloading to allow foo in the given Child class not to have the arguments even though the parent says it has to?</p>
  
  <p>Many thanks.</p>