Я должен был объявить это так:
void operator--(int);
И реализовать следующим образом:
void Vector::operator--(int) {
if (size>1) size--;
else std::cout << "Only one element in vector.\n";
}
this (int) помогает компилятору различать префиксы и постфиксы приращения или уменьшения.
Пример:
struct A {
void operator --(int) { std::cout << "Postfix\n"; }
void operator --() { std::cout << "Prefix\n"; }
};
int main()
{
A a;
a--;
--a;
}
Спасибо @PaulMcKenzie за ссылку .