Конкатенация строк не работает должным образом [закрыто]
Я знаю, что это распространенная проблема, но искать ссылки и другие материалы, я не нахожу четкого ответа на этот вопрос.
рассмотрим следующий код:
#include <string>
// ...
// in a method
std::string a = "Hello ";
std::string b = "World";
std::string c = a + b;
компилятор говорит мне, что он не может найти перегруженного оператора char[dim]
.
значит ли это, что в строке нет оператора+?
но в нескольких примерах есть такая ситуация. Если это не правильный способ объединить больше строк, что такое лучший способ?
4 ответа:
ваш код, как написано, работает. Вы, вероятно, пытаетесь достичь чего-то несвязанного, но похожего:
std::string c = "hello" + "world";
Это не работает, потому что для C++ это похоже на то, что вы пытаетесь добавить два
char
указатели. Вместо этого, вы нужно чтобы преобразовать хотя бы один изchar*
литералы кstd::string
. Либо вы можете сделать то, что вы уже разместили в вопросе (как я уже сказал, этот код будет работы) или вы делаете следующее:std::string c = std::string("hello") + "world";