код ниже:Конкатенация два переехал строки
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1 = "hello";
string s2 = "my";
string s3 = "world";
string s4;
s4 = move(s1) + move(s2) + move(s3);
cout << "s4(" << s4 << ") = s1(" << s1 << ") + s2(" << s2 << ") + s3(" << s3 << ")"<< endl;
}
дает следующий результат:
s4(hellomyworld) = s1() + s2(my) + s3(world)
Можете ли вы объяснить, что происходит? (Испытано с XCode 4.6.1)
EDIT: Я ожидал увидеть: s4(hellomyworld) = s1() + s2() + s3()
Обращайтесь к описанию того, что вы ожидали вместо этого. Ваше понимание может быть не таким, как понимание (и, действительно, потому, что вы здесь задаете вопрос, чтобы решить вашу путаницу, возможно, это не так! _) –