我不知道如果我误解的东西:它从一个拷贝构造函数std::string
不能复制它的内容?
string str1 = "Hello World";
string str2(str1);
if(str1.c_str() == str2.c_str()) // Same pointers!
printf ("You will get into the IPC hell very soon!!");
这将打印“你会进入IPC地狱很快!” 它让我很烦。
这是正常行为std::string
? 我读的地方,它通常不会深副本。
然而,这种按预期工作:
string str3(str1.c_str());
if(str1.c_str() == str3.c_str()) // Different pointers!
printf ("You will get into the IPC hell very soon!!");
else
printf ("You are safe! This time!");
它的内容复制到新的字符串。