/*
Output:
constructor A
constructor A
copyconstruct A
*/
Hmmm, I see two constructor calls and one copy constructor call (looks like someone didn't run the example code).

Every class does have an implicit copy constructor if one isn't specified (basically a memcpy), but there are rules for when it is called (and it isn't "always").

I didn't quote the C++ standard because I think a simple test program is enough to show behavior. I'd be happy to do so though, if need be.

gg