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

2021-08-19 19:22:19 字數 516 閱讀 5379

下面的**有區別嗎?  進入彙編

i++;   // i 的值作為返回值,i自增1

++i;  //i自增1,i的值作為返回值

#include

#include

using namespace std;

int main()

int value()

test& operator ++ ()                       //過載前置++操作符

test operator ++ (int)                 //過載後置++操作符,不是引用

};int main()

complex complex::operator ++(int)

{complex ret(a,b);

a=a+1;

b=b+1;

return ret+1;

對於基礎型別,前置++和後置++效率幾乎相同。

對於類型別,前置++的效率高於後置++,後置需要申請乙個臨時變數。

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

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

前置操作符和後置操作符

操作符可以被過載 全域性函式和成員函式均可以進行過載 過載前置 操作符不需要額外的引數 過載後置 操作符需要乙個int型別的佔位引數 來看乙個例子 include include using namespace std class test intvalue test operator test o...

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

void code include using namespace std int main vc 2010 彙編 int i 0 0127136e mov dword ptr i 0 i 01271375 mov eax,dword ptr i 01271378 add eax,1 0127137...