which return comply with C++ standard
<pre><code>class A {};

class B 
{
public:
    B(const A&amp; a, int i = 10) : m_a(a), m_i(i) {}
private:
    int m_i;
    A m_a;
};

B getB(void)
{
    //return B(A());  // Method one
    //return A();     // Method two
}
</code></pre>

<p>Both method one and method two pass the compilation of VS2010.</p>

<p><strong>Question 1</strong>> Which one is better?</p>

<p><strong>Question 2</strong>> Is it true that an implicit constructor supports more than one pass-in parameters if all except the first parameters have default values?</p>

<p>Thank you</p>
