title: Why is a pure virtual function initialized by 0?
body: <p>We always declare a pure virtual function as:</p>
  
  <pre><code>virtual void fun () = 0 ;
  </code></pre>
  
  <p>I.e., it is always assigned to 0.</p>
  
  <p>What I understand is that this is to initialize the vtable entry for this function to NULL and any other value here results in a compile time error. Is this understanding correct or not?</p>