C++ Function parameters create Classes
<p>Say i have the following class :</p>

<pre><code>class A
{
public:
    A() {
    }

    A(int a):_a(a){
    }

    int _a;
};
</code></pre>

<p>And the following function :</p>

<pre><code>void someFunc (A a)
{
    cout &lt;&lt; a._a;
}
</code></pre>

<p>So the following line in the program works fine :</p>

<pre><code>someFunc (5); // Calls A(int a) Constructor.
</code></pre>

<p>But the following does not :</p>

<pre><code>someFunc(); //Compile error
</code></pre>

<p>One can expect that if it can build A when getting an integer,
why not build one using the default constructor as well, when called with no arguments?</p>
