本文大部分来自这里,并不是完全着行翻译,如有不明白的地方请参考原文. 在c++中,创建临时对象的开销对程序的影响一直很大,比如以下这个例子: String getName(){ return “Kian”; } string name = getName(); name对象的构建可以细分为3步: 1. 用kian构建函数内的局部string对象tmp1 2. 调用复制构造函数将tmp1复制到tmp2,并析构tmp1. 3. 调用赋值拷贝函数将tmp2拷贝到name,并析构tmp2. 所以一共做了…