title: C++ difference between virtual = 0; and empty function
body: <p>I'm now learning C++, the OO side, and I see this all the time:</p>
  
  <pre><code>class SomeClass{
     virtual void aMethod()=0;
  }
  
  class AnotherClass{
     void anotherMethod(){/*Empty*/}
  }
  
  class SomeClassSon : public SomeClass{
     void aMethod(){/*Also Empty*/}
  }
  </code></pre>
  
  <p>what is the difference between the 3 methods? The virtual equals zero, the empty one, and the virtual, since it is inherited, empty one.</p>
  
  <p>Why can't I just make the SomeClassSon method like the father, virtual void equals zero?</p>