過載運算子之前 和後

2021-06-16 07:39:02 字數 892 閱讀 3360

下面例子程式中   const fraction operator ++(int)   中   

int不過是個啞元(dummy),是永遠用不上的   

它只是用來判斷++是prefix   還是   postfix   

記住,如果有啞元,則是postfix,否則,就是prefix   

就像其他的一元演算法和邏輯運算一樣   

而其實在c++中用到這種啞元的也只有在postfix   ++   和--了

例子:int i=10;

cout<

//i=11;字尾加;先返回後自增; 

10cout<<++i<

//i=12;字首加;先自增後返回; 

12例:

#include

using namespace std;

class fraction 

//數類;

fraction& operator++() 

//字首自加重載;(前置版本prefix)

const fraction operator ++(int) 

//字尾自加重載;(後置版本postfix)

};ostream& operator<<(ostream& out, const fraction& x)

int main()

前置版本返回乙個引用【fraction& operator++()】,後置版本返回乙個const值【const fraction operator ++(int)】。

後置版本是利用前置版本來實現的。節約**,控制**有餘。

前置版本的效率高,因為後置版本需要呼叫前置版本,所有後置版本效率比前置要低。(++i比i++效率高。)

在後置版本裡,人為新增乙個引數(int),主要是為了區別前置版本,這個引數不會被使用。

過載運算子

題目描述 定義乙個矩形類,資料成員包括左下角和右上角座標,定義的成員函式包括必要的建構函式 輸入座標的函式,實現矩形加法,以及計算並輸出矩形面積的函式。要求使用提示中給出的測試函式並不得改動。兩個矩形相加的規則是 決定矩形的對應座標分別相加,如 左下角 1,2 右上角 3,4 的矩形,與 左下角 2...

過載運算子

include include using namespace std class test test const int a v a test const test t1 v t1.v 以下過載小於號 比較兩個物件的大小 bool operator const test t1 const 比較物件...

過載運算子

1.當乙個過載的運算子是成員函式時,this繫結到左側運算物件。成員運算子函式的引數比運算物件的數量少乙個。非成員函式呼叫等價於 data1 data2 普通表示式 operator data1,data2 等價的函式呼叫成員函式呼叫等價於 data1 data2 普通表示式 data1.opera...