title: Different ways for object initialization in C++
body: <p>I am learning C++, and I've seen that all of the following examples initialize an int to a given value:</p>
  
  <pre><code>int i = 0;
  int j = int(0);
  int k{ 0 };
  </code></pre>
  
  <p>I read other questions such as <a href="https://stackoverflow.com/questions/13738996/int-a-0-and-int-a0-differences">int a = 0 and int a(0) differences [duplicate]</a></p>
  
  <p>The only questions (and answers) I've found only:</p>
  
  <ol>
  <li>Deal with the first 2 examples.</li>
  <li>Mention that for "int" these may be the same, but for other types it may not be the same (without specifying how or why).</li>
  </ol>
  
  <p>I'd like to further understand the difference between these, and how may they differ in other cases.</p>