title: C++ Derived class is abstract error
body: <p>I am having a trouble where Dialin, the derived class is abstract.  I'm not sure why since the only virtual function I have has the same parameters and same return types. From what I've read, that's the only restriction, but apparently I'm wrong.</p>
  
  <p>Here's my code:</p>
  
  <p>Header:</p>
  
  <pre><code>class Event{
      class ModemSimV2;
  
  public:
      Event( );
      Event( const Event &amp;e );
      ~Event( );
  
      virtual void process( ModemSimV2 &amp;m ) = 0;
  
  protected:
      int who;        // the number of the user
      int time;       // when the event will occur
      int what;       // DIAL_IN or HANGUP
  };
  
  
   class Dialin : public Event{
       class ModemSimV2;
   public:
       Dialin( int name = 0, int tm = 0 );
       Dialin( const Dialin &amp;d );
       ~Dialin( );
  
       virtual void process( ModemSimV2 &amp;m );
  
   private:
       int who;
       int time;
       int what;
   };
  </code></pre>
  
  <hr/>
  
  <p>Source:</p>
  
  <pre><code>Event::Event(){
  }
  
  Event::Event( const Event &amp;e ) {
      *this = e;
  }
  
  Event::~Event( ) {
  }
  
  Dialin::Dialin (int name, int tm )
  : time( tm ), who( name ) { 
      return;
  }
  
  Dialin::Dialin ( const Dialin &amp;d ) {
      *this = d;
  }
  
  Dialin::~Dialin( ) {
  }
  
  void Dialin::process( ModemSimV2 &amp;m ) {        
  }
  </code></pre>