C 自增運算子進行過載

2021-05-24 00:06:28 字數 598 閱讀 5395

在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被傳遞給...