return的总结

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

posted @ 2015-04-09 11:46  一起经历  阅读(151)  评论(0编辑  收藏  举报