У меня есть следующий фрагмент кода:Почему этот код std :: string C++ не дает ошибку компиляции?
#include <string>
int main(int argc, char *argv[])
{
std::string a, b, c;
a + b = c;
return 0;
}
Почему это не C++ код дать время компиляции ошибка? Вероятно, это связано с тем, как был реализован std::string::operator+
, но затем мой вопрос: почему он был реализован таким образом? В каких случаях такое поведение необходимо?
Почему это дало ошибку компиляции? a + B возвращает действительный строковый объект. как для использования? он не может быть использован –
@DavidHaim OP, вероятно, ожидает, что он потерпит неудачу по тем же причинам, что и он «a, b, c' был' int'. – juanchopanza
Может ли кто-нибудь указать допустимый вариант использования? –