title: Multiple virtual inheritance and constructor call of base class
body: <p>There is this code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  class Bazowa
  {
      int x;
  public:
      Bazowa() : x(55){}
      Bazowa(int x_) : x(x_) {}
      void fun()
      {
        std::cout &lt;&lt; x &lt;&lt; "fun\n";
      }
  };
  
  class Pochodna1 : virtual public  Bazowa
  {
  public:
      Pochodna1() : Bazowa(101) {}
  };
  
  class Pochodna2 : virtual public  Bazowa
  {
  public:
      Pochodna2() : Bazowa(103) {}
  };
  
  class SuperPochodna : public Pochodna1, public Pochodna2
  {
  public:
      SuperPochodna() : {}
  };
  
  
  int main() {
      SuperPochodna sp; 
      sp.fun();     // prints 55fun
  
      return 0;
  }
  </code></pre>
  
  <p>After execution of this program, it will print "55fun". What happened to constructor calls in class Pochodna1 and Pochodna2 - are they ignored? Why member 'x' of class Bazowa is set to '55', but not '101' or '103'?</p>