Перегрузка оператора после декремента - PullRequest
0 голосов
/ 05 апреля 2020

Мне нужно перегрузить оператор пост декремента, в котором я должен скопировать все элементы из set1 в set2. После копирования уменьшите все элементы набора set1 (set2 = set1--;). Скажите, пожалуйста, как я могу реализовать это ???? Перегруженный мной простой пост декрементный оператор выглядит следующим образом:

Set & operator --(int) 
    {
        for(int i=0;i<size;i++)
        {
            arr[i] --;
        }
        return *this;
    }

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Ваш оператор постдекремента неверен, он не должен возвращать ссылку на *this. Как вы можете видеть здесь: https://en.cppreference.com/w/cpp/language/operator_incdec его объявление:

T T::operator--(int);

Постинкремент и пост декремент создает копию объекта, увеличивает или уменьшает значение объекта и возвращает копию до увеличения или уменьшения.

0 голосов
/ 05 апреля 2020

Это логи c:

Set operator --(int) 
{
    Set s = *this;
    for(int i=0;i<size;i++)
        arr[i] --;
    return s;
}
...