我是 C++ 新手,我在 const std::string 赋值中遇到了这种奇怪的情况
这很好用: const std::string hello = "Hello"; const std::string message = hello + "world";
这会产生编译器错误: const std::string message = "Hello" + "world";
我不明白这是为什么,有人吗?
谢谢
我是 C++ 新手,我在 const std::string 赋值中遇到了这种奇怪的情况
这很好用: const std::string hello = "Hello"; const std::string message = hello + "world";
这会产生编译器错误: const std::string message = "Hello" + "world";
我不明白这是为什么,有人吗?
谢谢
没有operator +
定义接受两个类型的指针const char*
并返回一个新的字符数组,其中包含它们指向的字符串的串联。
你可以做的是:
std::string message = std::string("Hello") + "world";
甚至:
std::string message = "Hello" + std::string("world");
要连接文字字符串,您不需要+
在它们之间添加额外内容,只需将它们放在一起,无需任何运算符即可执行连接:
std::string message = "Hello" "world";
printf("%s\n", message.c_str());
上面的代码会给你:
Helloworld