因为我已经operator++
为迭代器类重载了
template<typename T>
typename list<T>::iterator& list<T>::iterator::operator++()
{
//stuff
}
但是当我尝试做
list<int>::iterator IT;
IT++;
我收到关于没有 postifx 的警告++
,使用前缀形式。我怎样才能特别重载前缀/后缀形式?
因为我已经operator++
为迭代器类重载了
template<typename T>
typename list<T>::iterator& list<T>::iterator::operator++()
{
//stuff
}
但是当我尝试做
list<int>::iterator IT;
IT++;
我收到关于没有 postifx 的警告++
,使用前缀形式。我怎样才能特别重载前缀/后缀形式?
http://www.devx.com/tips/Tip/12515
class Date {
//...
public:
Date& operator++(); //prefix
Date& operator--(); //prefix
Date operator++(int unused); //postfix
Date operator--(int unused); //postfix
};
编写相同运算符重载的版本,但给它一个类型的参数int
。您不必对该参数的值做任何事情。
如果你对这个语法是如何产生的历史感兴趣,这里有一个片段。
Postfix 在签名中有一个 int 参数。
Class& operator++(); //Prefix
Class operator++(int); //Postfix