如果右侧包含字符串文字的串联,则C ++ const std :: string赋值错误

时间:2013-06-22 21:54:06

标签: c++ string compiler-errors variable-assignment

我是C ++的新手,我遇到了const std :: string assignment

的奇怪之处

这很好用:     const std :: string hello =“Hello”;     const std :: string message = hello +“world”;

这会给编译器错误:     const std :: string message =“Hello”+“world”;

我不明白为什么会这样,有人吗?

由于

2 个答案:

答案 0 :(得分:2)

没有operator +定义了两个类型为const char*的指针,并返回一个新的字符数组,其中包含它们指向的字符串的串联。

你能做的是:

std::string message = std::string("Hello") + "world";

甚至:

std::string message = "Hello" + std::string("world");

答案 1 :(得分:1)

要连接文字字符串,您不需要在它们之间添加额外的+,只需将它们放在一起,而不会有任何操作符执行连接:

std::string message = "Hello" "world";
printf("%s\n", message.c_str());

以上代码将为您提供:

Helloworld