return的总结

局部对象也可以返回
  因为C++中使用临时复制对象来传值的缘故.例如: 局部string Str 对象,return Str;时C++会用一个临时复制对象来保存Str的值,接着Str的生存期结束,然后临时对象的值被赋给调用处,最后临时复制对象的生存期结束,通过汇编代码会看到返回的时候会再构造一个对象,最后析构2次,但是第二次析构的时候临时对象已经复制到调用处了。

原文地址:https://www.cnblogs.com/lishennan/p/4409236.html