class A { ... }; A& getA(); A anA = getA();
第三行发生了什么?
是否调用了 A 的拷贝构造函数,从而创建了一个与由函数返回(按引用)的对象无关的对象?
getA()
复制构造函数 A 是否被调用,从而创建一个与函数返回的(通过引用)独立的对象?
是的。复制构造函数以源对象的引用作为参数,并且假设复制构造函数执行深拷贝,则复制是独立于原始对象的。
getA()
不返回局部对象。 - Luchian Grigore