Как перегрузить оператор ++ для собственного класса String?

Я перегружаю оператор ++ для класса String, который я написал сам. При компилировании появляется ошибка С2676 бинарный "++": "String" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору. Сначала я думал что проблема в обьявлении метода в классе, но там все правильно. Вот код:
String& String::operator++() {

	size_t length = strlen(this->string_);

	char tmp;
	String result(length);

	for (size_t i = 0; i < length; i++)
	{
		tmp = this->string_[0];
		tmp += 1;
		cout << tmp;
		result.string_[i] = tmp;
	}

	result.string_[length + 1] = '\0';
	
	return result;
}


Благодарен за любую помощь.
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
@res2001
Developer, ex-admin
В префиксном инкременте вы должны изменить текущий объект и вернуть ссылку на себя.
Вы же генерируете новый объект.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы