std::string
operator+
объединяет два std::string
с. Однако ваша проблема в том, что "concatenate"
и "this"
не являются двумя std::string
с; они типа const char []
.
Если вы хотите объединить два литерала "concatenate"
и "this"
по какой-либо причине (как правило, чтобы разделить строки на несколько строк), выполните:
string someVariable = "concatenate" " this";
И компилятор поймет, что вы на самом деле хотите string someVariable = "concatenate this";
Если "concatenate"
и "this"
были сохранены в std::string
с, то следующее является действительным:
string s1 = "concatenate";
string s2 = " this";
string someVariable = s1 + s2;
OR
string s1 = "concatenate";
string someVariable = s1 + " this";
Или даже
string someVariable = string("concatenate") + " this";
Где " this"
будет автоматически преобразовываться в std::string
объект при вызове operator+
. Чтобы это преобразование имело место, хотя бы один из операндов должен иметь тип std::string
.