第一个就是A thing那里用了default构造函数,函数foo传参数的时候因为传的是引用,所以不构造新的对象,所以也就没有调用任何构造函数了第二个里面的foo函数是传值的,所以需要用到拷贝构造函数,然后返回的时候差不多像你说的那样。第三个里面的A another=foo(thing);其实是会调用拷贝构造函数来构造another的,不过为什么析构函数少了就不太清楚了,有可能是编译器的优化?我得回去翻翻thinking in c++
第一个就是A thing那里用了default构造函数,函数foo传参数的时候因为传的是引用,所以不构造新的对象,所以也就没有调用任何构造函数了
第二个里面的foo函数是传值的,所以需要用到拷贝构造函数,然后返回的时候差不多像你说的那样。
第三个里面的A another=foo(thing);其实是会调用拷贝构造函数来构造another的,不过为什么析构函数少了就不太清楚了,有可能是编译器的优化?我得回去翻翻thinking in c++