title: Multiple constructors in C++
body: <p>Question is about multiple constructors that confuses me.</p>
  
  <pre><code>#include "complex.h"
  #include &lt;iostream&gt;
  
  using namespace std;
  
  Complex::Complex(double realPart, double imPart)
      : m_R(realPart), m_I(imPart)
  {
      cout &lt;&lt; "complex(" &lt;&lt; m_R &lt;&lt; "," &lt;&lt; m_I &lt;&lt; ")" &lt;&lt; endl;
  }
  
  Complex::Complex(double realPart)
  {
      Complex(realPart, 0);
  }
  
  Complex::Complex() : m_R(0.0), m_I(0.0)
  {
  }
  
  int main() {
      Complex C1;
      Complex C2(3.14);
      Complex C3(6.2, 10.23);
  }
  </code></pre>
  
  <p>Can someone explain how compiler knows which constructor to use of three defined? Primer is from <a href="http://ptgmedia.pearsoncmg.com/images/9780131879058/downloads/0131879057_Ezust_book.pdf" rel="nofollow">this book</a>, page 58.</p>