「--」後置演算子をオーバーロードしようとしています。私はこのコードを持っています:
class Counter
{
private:
int count;
public:
Counter()
{ count = 0; }
Counter(int c)
{ count = c; }
void setCount(int c)
{ count = c; }
int getCount()
{ return count; }
int operator--()
{
int temp = count;
count = count - 1;
return temp;
}
};
次に、main
次の関数呼び出しがあります。
Counter a;
a.setCount(5);
cout << a-- << endl;
これにより、次のエラーが表示されます。
error: no ‘operator--(int)’ declared for postfix ‘--’, trying prefix operator instead
しかし、次のようにoperator--
関数を呼び出すと、問題なく動作します。
cout << a.operator--() << endl;
何を与える?正常に動作するはずです。