1

我是 C++ 新手,我在 const std::string 赋值中遇到了这种奇怪的情况

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

这会产生编译器错误: const std::string message = "Hello" + "world";

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

谢谢

4

2 回答 2

2

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

你可以做的是:

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

甚至:

std::string message = "Hello" + std::string("world");
于 2013-06-22T21:55:39.113 回答
1

要连接文字字符串,您不需要+在它们之间添加额外内容,只需将它们放在一起,无需任何运算符即可执行连接:

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

上面的代码会给你:

Helloworld
于 2013-06-22T21:58:57.063 回答