Sergomen
@Sergomen
Просто делай добро и оно вернётся

Можно ли перегрузить постфиксную форму оператора ++ без использования классов?

Я хочу перегрузить постфиксную форму оператора ++ для переменной типа string.

Пробовал так:
код
string operator ++ (string s){
	return s+"\n";
}
int main(){
	string text = "text";
	cout << ++text; 
}

но получается пергрузить только префиксную форму ++.

Пробовал гуглить как перегрузить постфиксную форму но нашёл только варианты с использованием классов. Получилось чтото такое:
код
class S{
  public:
   string s;
 
   S(string _s){
        s = _s;
   }

   S operator ++ (int hz){
        s += "\n";
        return *this;
   }
 
};

int main()
{
    S n("text");
    n++;
    cout << n.s ;  
}


В этом случае получилось, но неужели нет варианта без использования классов(ну хотябы похжих на мой первый вариант для префиксной формы)?
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
alex1951
@alex1951
"умных преподавателей слушал я невнимательно..."
string operator ++ (string s, int){
return s+"\n";
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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