前置操作符和後置操作符

2021-10-03 16:55:06 字數 638 閱讀 8266

++操作符可以被過載

全域性函式和成員函式均可以進行過載

過載前置++操作符不需要額外的引數

過載後置++操作符需要乙個int型別的佔位引數

來看乙個例子

#include

#include

using

namespace std;

class

test

intvalue()

test&

operator++(

)

test operator++(

int)};

intmain()

結果:

sice@sice:~$ ./a.out 11

2

可以看出我們過載了後置操作符和前置操作符,我們這裡的t++呼叫了後置操作符過載函式,先返回,後+1,完全符合我們c語言中的語法,還有一點可以看出對於前置++和後置++,前置++的效率高於後置++,因為前置++不用產生臨時物件

40 前置操作符和後置操作符

下面的 有區別嗎?進入彙編 i i 的值作為返回值,i自增1 i i自增1,i的值作為返回值 include include using namespace std int main int value test operator 過載前置 操作符 test operator int 過載後置 操作...

40 前置操作符和後置操作符

注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 9.2.0 一 值得思考的問題 1 下面的 有沒有區別?為什麼?i i 的值作為返回值,i自增1。i i自增1,i的值作為返回值test.cpp include using namespa...

過載前置操作符和後置操作符

i i的值作為返回值,i自增1 i i自增1,i的值作為返回值 現代編譯器產品會對 進行優化 優化使得最終的二進位制程式更加高效 優化後的二進位制程式丟失了c c 的原生語義 不可能從編譯後的二進位制程式還原c c 程式 操作符可以被過載 全域性函式和成員函式均可以進行過載 過載前置 操作符不需要額...