连接string不能按预期工作

我知道这是一个普遍的问题,但寻找参考和其他材料,我没有find明确的答案这个问题。

考虑下面的代码:

#include <string> // ... // in a method std::string a = "Hello "; std::string b = "World"; std::string c = a + b; 

编译器告诉我它找不到一个重载操作符char[dim]

这是否意味着在string中没有+运算符?

但在几个例子中就有这样的情况。 如果这不是连接更多string的正确方法,那么最好的方法是什么?

您的代码,如书面,工作。 你可能试图实现一些不相关的东西,但类似:

 std::string c = "hello" + "world"; 

这是行不通的,因为对于C ++来说,这好像是在试图添加两个char指针。 相反,您需要将至less一个char*文字转换为std::string 。 要么你可以做你已经发布的问题(正如我所说,这个代码起作用),或者你做下面的事情:

 std::string c = std::string("hello") + "world"; 
 std::string a = "Hello "; a += "World"; 

我会这样做:

 std::string a("Hello "); std::string b("World"); std::string c = a + b; 

其中编译VS2008。

 std::string a = "Hello "; std::string b = "World "; std::string c = a; c.append(b);