title: How does it works when a default constructor acts as a default argument?
body: <pre><code>template &lt;class T&gt;
  ...
  explicit Vec(size_type n, const T&amp; t = T() ) { create(n, t); }
  </code></pre>
  
  <p>I come across this declaration in 'accelerated c++' and the 'Vec' class is simulating the behavior of 'vector' class in STL. But I don't know what will happen if I don't provide the second argument when I call this constructor. I am confused about this because I learned from the book that there is no return value of any constructor? So how can T() be used to initialize t? I a novice of C++. Could anyone elaborate relevant story to me?</p>