我是C ++的新手,我遇到了const std :: string assignment
的奇怪之处这很好用: const std :: string hello =“Hello”; const std :: string message = hello +“world”;
这会给编译器错误: const std :: string message =“Hello”+“world”;
我不明白为什么会这样,有人吗?
由于
答案 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