Whats wrong with the following code? It's not compiling
<pre><code>#include &lt;iostream&gt; 
#include &lt;vector&gt;
using namespace std;

class Base
{
public:
      void Display( void )
      {
            cout&lt;&lt;"Base display"&lt;&lt;endl;
      }

      int Display( int a )
      {
            cout&lt;&lt;"Base int display"&lt;&lt;endl;
            return 0;
      }

};

class Derived : public Base
{
public:

      void Display( void )
      {
            cout&lt;&lt;"Derived display"&lt;&lt;endl;
      }
};


void main()
{
   Derived obj;
   obj.Display();  
   obj.Display( 10 );
}
</code></pre>

<hr>

<pre><code>$test1.cpp: In function ‘int main()’:  
test1.cpp:35: error: no matching function for call to ‘Derived::Display(int)’  
test1.cpp:24: note: candidates are: void Derived::Display()
</code></pre>

<p>On commenting out <code>obj.Display(10)</code>, it works.</p>
