摘要:
本文大部分来自这里,并不是完全着行翻译,如有不明白的地方请参考原文。在c++中,创建临时对象的开销对程序的影响一直很大,比如以下这个例子:String getName(){ return “Kian”;}string name = getName();name对象的构建可以细分为3步:1. 用kian构建函数内的局部string对象tmp12. 调用复制构造函数将tmp1复制到tmp2,并析构tmp1.3. 调用赋值拷贝函数将tmp2拷贝到name,并析构tmp2。所以一共做了3次内存分配,两次复制拷贝操作,但是tmp1和tmp2都马上析构了,如果内存分配很大的话,这里的资源浪费是很可观... 阅读全文