前置 和後置 過載

2021-08-05 21:40:15 字數 543 閱讀 6356

1、

前置++過載時沒有引數

,而後置++過載時有引數。不會使用其引數,僅僅是區分用。

可以理解為前置++後面有引數了,所以不需要引數

++i 對應 operator++()

i++ 對應 operator++(int)

2、前置++需要返回引用

,因為過載自加運算子後可以返回物件的引用, 以方便在表示式中連續使用。而後置++返回的不是引用,所以不能進行連續使用。

#include#includeusing namespace std;

class node

node()

node &operator++() //前置++,++i

node operator++(int) //後置++,i++

void print()

private:

int x;

int y;

};int main()

過載 前置 與後置

過載 前置 與後置 不同於普通的雙目運算子 自增自減運算子 在過載的時候需要額外留意區分是前置式還是後置式。現行的處理方法是,作為成員函式的 前置 不接受任何引數,而後置 接受乙個int型別的引數,儘管沒什麼實際用途,但是卻為編譯器確定過載物件提供了幫助。除了區分的時候需要注意,他們的行為也是有所區...

過載運算子 前置 和後置

1 為區別前置和後置運算子,需要在後置運算子函式中加引數 int 雖然這個型別在此除了以示區別之外並不代表任何實際含義 2 前置返回的是變數的引用,後置返回的是常量。所以 c合法,而c 不合法,這一點可以在vc 6.0和dev c 中採用基本資料型別的 操作來驗證 3 為什麼不讓c 也合法呢?如果要...

前置 和後置 的區別

includeusing namespace std class int int const int operator int int operator private int m i ostream operator ostream os,const int i 可以使用 a而此時不能使用a 後置...