title: Who calls constructor in virtual inheritance?
body: <pre><code>#include&lt;iostream&gt;
  
  class base{
  public:
  base(){std::cout&lt;&lt;"In base";}
  };
  
  class dv1:virtual private base {
  public:
  dv1(){std::cout&lt;&lt;"In DV1";}
  };
  
  class dv2:virtual private base {
  public:
  dv2(){std::cout&lt;&lt;"In DV2";}
  };
  
  class drv : public dv1, public dv2 {
  public:
  drv() {std::cout&lt;&lt;"Why is this working";}
  };
  
  int main() {
  drv obj;
  
  return 0;
  }
  </code></pre>
  
  <p>Isn't in case of virtual inheritance, it is the responsibility of most derive class to call the constructor?
  Note: Here base is inherited virtually and privately.  </p>