title: default constructor for int
body: <blockquote>
  <p><strong>Possible Duplicate:</strong><br />
  <a href="https://stackoverflow.com/questions/180172/why-is-it-an-error-to-use-an-empty-set-of-brackets-to-call-a-constructor-with-no">Why is it an error to use an empty set of brackets to call a constructor with no arguments?</a></p>
  </blockquote>
  
  <p>In an answer to <a href="https://stackoverflow.com/q/507971/1025391">this question</a> it's said that</p>
  <blockquote>
  <p>ints are default-constructed as 0, as if you initialized them with int(). Other primitive types are initialized similarly (e.g., double(), long(), bool(), etc.).</p>
  </blockquote>
  <p>Just while I was explaining this to a colleague of mine I made up the following code, <a href="http://ideone.com/8yB1R" rel="nofollow noreferrer">compiled (gcc-4.3.4) and ran</a>, and observed unexpected behavior.</p>
  <pre><code>#include &lt;iostream&gt;
  
  int main() {
    int i(); 
    std::cout &lt;&lt; i &lt;&lt; std::endl; // output is 1
  }
  </code></pre>
  <p>Why is the output <code>1</code> and not <code>0</code> ?</p>