下面例子程式中 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...