《C++ Primer》第81页讲了相关内容:
例子:
string s1("aaa"), s2("bbb");
s1 += s2 + ',' + "d";
cout << s1; // 输出aaabbb,d --> 正确
因为 s2 + ',' 的结果是一个string对象,这个对象再和 "d"相加。
string s1("aaa"), s2("bbb");
s1 += ',' + s2 + "d";
cout << s1; // 输出aaa,bbbd --> 正确
同样的,',' + s2 的结果一个string对象,这个对象再和 "d"相加。
string s1("aaa"), s2("bbb");
s1 += ',' + "d" + s2;
cout << s1; // 输出aaabbb --> 错误
上面是错误的,原因暂时不知道,可能是 += 运算符的问题?
解决办法:
string s1("aaa"), s2("bbb");
s1 = s1 + ',' + "d" + s2; // 不用 +=
cout << s1;
string s1 = "aaa" + "bbb"; // 无法通过编译
cout << s1;
解决办法:
string s1("aaa");
string s2("bbb");
string s3 = s1 + s2;
cout << s3;