下面例子程序中?? 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),主要是為了區別前置版本,這個參數不會被使用。