【发布时间】:2013-05-20 19:22:29
【问题描述】:
以下代码:
#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 测试)
编辑:
我希望看到:
s4(hellomyworld) = s1() + s2() + s3()
【问题讨论】:
-
请习惯于描述您期望发生的事情。您的理解可能与我们的理解不同(事实上,因为您在这里提出问题是为了解决您的困惑,可能不是!)跨度>
标签: c++ c++11 move-semantics