#includeusing說明:1.如果namespace
std;
class
myinteger
//過載++i運算子
//返回引用是為了對同乙個資料進行遞增操作
myinteger & operator++()
//過載i++運算子,int是佔位符,後置遞增要返回值
myinteger operator++(int
) private
:
intnum;
};ostream & operator
<
void
test()
void
test2()
intmain()
myinteger & operator++()這裡返回的是myinteger而不是引用myinteger &,在呼叫test()時,會輸出:
也就是沒有達到++i類似的效果:先計算,後賦值。這是因為,當執行一遍++myinteger後,再執行++(++myinteger) ,此時這裡的(++myinteger)已經不再是原來的myinteger物件了,所以++(++myinteger) 的結果是2,而myinteger的結果是1,因此採用&,操作的就是同乙個物件。這之後再呼叫test(),輸出為:
要想實現另外一種自增,即i++,先賦值,後計算,就需要過載自增函式,只需要向過載函式中傳入int佔位符即可。同時,在函式裡面,先要記錄當前的值,再進行++,最後返回原先記錄的值,這裡返回的不能是引用,因為假設我們返回的是引用,相當於返回的是tmp的引用,而tmp是乙個區域性變數,在函式執行完後就會釋放,此時再去訪問該位址,就不合法了。最後呼叫test2(),輸出為:
C 遞增運算子過載
作用 通過過載遞增運算子,實現自己定義的資料型別 如下 include using namespace std 過載遞增運算子 自定義型別 class myinteger 過載前置 運算子 返回引用是為了一直對乙個資料進行遞增操作 myinteger operator 過載後置 運算子 這個int代...
C 的遞增運算子過載
用途 主要用來實現自義定資料型別的遞增 實現遞增過載前,為了可以cout直接輸出自定義資料型別先實現一下左移運算子 的遞增。include include using namespace std class myintger myintger myintger args myintger myint...
12 5 3 遞增運算子過載
示例 實現person類的年齡自增1。建立類並且過載左移運算子 class person string m name int m age ostream operator ostream cout1,const person p 1 前置遞增 如果遞增運算子過載完成,寫出來應該是這樣的 person...