Why isn't the copy constructor called twice in the following code? <p>The copy constructor is called when an object is returned from a function by value. Another case is when an object is initialized using another object. In the following code, why isn't the copy constructor called twice?</p> <pre><code>#include &lt;iostream&gt; using namespace std; class A { public: A() { } A(const A&amp; copy) { cout &lt;&lt; "Copy constr.\n"; } A func() { A a; return a; //it's called here } }; void main(void) { A b; A c = b.func(); //not called during initialization. Why? } </code></pre>