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 後置...