【发布时间】:2012-06-27 03:48:56
【问题描述】:
我正在尝试重载“--”后缀运算符。我有这个代码:
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;
什么给了?它应该可以正常工作。
【问题讨论】:
-
那是因为
a.operator--()等价于--a。
标签: c++ class operator-overloading postfix-operator