下面例子程序中 const Fraction operator ++(int) 中
int不过是个哑元(dummy),是永远用不上的
它只是用来判断++是prefix 还是 postfix
记住,如果有哑元,则是postfix,否则,就是prefix
就像其他的一元算法和逻辑运算一样
而其实在C++中用到这种哑元的也只有在postfix ++ 和--了
例子:
int i=10;
cout<<i++<<endl;
cout<<++i<<endl;
例:
#include<iostream>
using namespace std;
class Fraction
{
private:
public:
};
ostream& operator<<(ostream& out, const Fraction& x)
{
}
int main()
{
}
前置版本返回一个引用【Fraction& operator++()】,后置版本返回一个const值【const Fraction operator ++(int)】。
后置版本是利用前置版本来实现的。节约代码,控制代码有余。
前置版本的效率高,因为后置版本需要调用前置版本,所有后置版本效率比前置要低。(++i比i++效率高。)
在后置版本里,人为添加一个参数(int),主要是为了区别前置版本,这个参数不会被使用。