有人可以向我解释this的做法吗?
// no
string s1("abc");
string s2 = s1 + " " + s1;
// yes
string s1("abc");
string s2 = s1;
s2 += " ";
s2 += s1;
通常,一个简单的运算符会创建一个临时对象。在该示例中,运算符+创建临时字符串,其创建和销毁需要很多时间。
相反,使用+ =运算符的等效代码不会 创建临时对象。
使用复合运算符可以删除其中一个操作数(稍作优化),但是在这种情况下?
while(something)
{
total+=(a-b)*c;
}
我应该使用另一个变量(否则结果将是错误的),以防止出现临时对象?