在c++中自增運算子分為前置++和後置++。前置++是先進行+1操作,然後返回+1之後的值;後置++是先返回值,然後再進行+1操作。
仿照《stl原始碼剖析》,寫的自增操作。
#include
using namespace std;
class my;
my& operator++(){
++(this->m_i);
return *this;
const my operator++(int){
my temp = *this;
++(*this);
return temp;
ostream& operator<<(ostream& os,const my& my){
os<<'['前置++和後置++需要進行運算子過載,貌似按照規定對於後置++中的函式需要帶引數。
分析前置++和後置++的行為,考慮兩種操作的返回值形式,前置++需要先進行運算後返回,所以可以進行在本身上面進行++操作,然後返回本身,所以可以返回引用;而對於後置++,則是先返回本身後進行+1操作,返回的時候不可以對本身進行++操作,所以需要乙個臨時變數來儲存進行++操作之前的值,返回的時候返回的是臨時變數。
自增運算子過載
程式的版權和版本宣告部分 檔名稱 test.cpp 作 者 任子儀 完成日期 2014年 4月 19日 版 本 號 v12.1 輸入描述 無 問題描述 程式輸出 問題分析 略 演算法設計 略 includeusing namespace std class time void display 二目賦...
自增運算子過載
前置 是把物件加1後再給你用。後置 是把物件的值借你用,再把物件本身加1。1.作為成員函式 字首自增運算子 test operator 前置運算子 字尾自增運算子 test operator int 後置運算子 2.作為友元函式 先要在類內宣告友元函式 friend test operator te...
如何過載自增運算子 和自減運算子
如何過載增量運算子 和 運算子 和 有前置和後置兩種形式,如果不區分前置和後置,則使用operator 或operator 即可 否則,要使用operator 或operator 來過載前置運算子,使用operator int 或operator int 來過載後置運算子,呼叫時,引數int被傳遞給...