想知道这个c++程序为什么答案是这样

img


想知道这个程序为什么是这个答案,和这个程序每一步都是什么意思。

就是构造函数调用顺序
obj(1)和obj2(2) 会调用只有一个参数的构造函数,输出两次1
obj3(obj1)会调用拷贝构造函数,输出一次2
下面两个=赋值会调用两次=重载操作,输出两次3
最后obj1,obj2,obj3三个对象释放时都会调用析构函数,因此输出三次4