在重载后缀运算符,我可以做一些简单的像后缀运算符过载中虚拟参数的用途? C++
Class Foo
{
private:
int someBS;
public:
//declaration of pre &postfix++
Foo operator++();
//rest of class not shown
};
前缀不需要带任何参数,所以当我定义它,像
Foo Foo::operator()
{
someBS ++;
return *this;
}
,这让对我来说完美的感觉。
当我去定义后缀超负荷我必须包括一个虚拟的int参数
Foo Foo::operator++(int)
{
Foo temp = *this;
someBS ++;
return temp;
}
我的问题是为什么呢?我从来没有在方法中使用它。前缀运算符不需要一个。返回temp
值的后缀不依赖于虚拟参数。我知道如果我想要重载一个postfix操作符,它是如何完成的,我只想知道背后的原因。
你会提出什么替代方法? –
@AlanStokes,没有其他办法。鉴于我不确定其目的,我当然没有办法以不同的方式做。 – Podo
@AlanStokes,'Foo ++运算符()'和'Foo运算符++()'怎么样? ;) (只有5%严重...) – kloffy