Должен ли я возвращать ссылку на объект при перегрузке оператора предварительного приращения?

Могу я использовать:

MyClass& MyClass::operator++ () {
    a++;  // private var of MyClass
    return (*this);
}

Или это может быть:

MyClass MyClass::operator++ ();

В чем разница?


Спасибо за ответы. У меня другая проблема.

Многие поступают так:

MyClass& MyClass::operator++();
MyClass MyClass::operator++(int);

Разве это не нелогично? Приведите несколько примеров, если можете.

Я знаю, что первая версия является преинкрементной, а вторая - постинкрементной, но я спрашиваю, почему первая возвращает ссылку, а вторая - нет? Это тот же код (класс) и то же использование кода.

8
задан Ciro Santilli 新疆改造中心法轮功六四事件 16 June 2015 в 08:30
поделиться