C++自增运算符进行重载

来源:互联网 发布:药店收银软件 编辑:程序博客网 时间:2024/05/16 19:09

      在C++中自增运算符分为前置++和后置++。前置++是先进行+1操作,然后返回+1之后的值;后置++是先返回值,然后再进行+1操作。

      仿照《STL源码剖析》,写的自增操作。

#include<iostream>

using namespace std;

 

class My{

private:

int m_i;

public:

friend ostream& operator<<(ostream& os,const My& my);

My(int i):m_i(i){};

 

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<<'['<<my.m_i<<']'<<endl;

return os;

}

 

       前置++和后置++需要进行运算符重载,貌似按照规定对于后置++中的函数需要带参数。

       分析前置++和后置++的行为,考虑两种操作的返回值形式,前置++需要先进行运算后返回,所以可以进行在本身上面进行++操作,然后返回本身,所以可以返回引用;而对于后置++,则是先返回本身后进行+1操作,返回的时候不可以对本身进行++操作,所以需要一个临时变量来保存进行++操作之前的值,返回的时候返回的是临时变量。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 剁排骨没有好刀怎么办 硬币掉进档位里怎么办 魅族mx5手机太卡怎么办 华为m9手机声音小怎么办 放卡的地方堵住怎么办 美图m8蓝屏了怎么办 美图m8手机蓝屏怎么办 美图m6s手机白屏怎么办 魅蓝2开不开机怎么办 魅族手机主键没反应怎么办 魅族手机主键失灵怎么办 手机4g网络不稳定怎么办 华为m9收不到手机信息怎么办 华为手机wifi信号弱怎么办 手机连接wifi信号差怎么办 华华为p10信号不好怎么办 烟没拆封受潮了怎么办 和亲儿子发生了性关系怎么办 无心磨磨出来圆度不好怎么办 中国人在越南办结婚证怎么办? 无线网被限速了怎么办 联通大王卡上传速度慢怎么办 小米手机下载视频速度慢怎么办 大疆御air脚架断了怎么办 大疆飞行器线断了怎么办 移动校园卡套餐到期后怎么办 流量年包到期了怎么办 家里无线网信号不好怎么办 无线网光信号红灯了怎么办 机顶盒获取不了lp地址怎么办 32内存卡丢了怎么办 手机上的相机找不到了怎么办 有刘鑫这样的闺蜜该怎么办 电脑开机网络初始化失败怎么办 电脑放音乐没有声音怎么办 苹果手机gprs信号弱怎么办 苹果导航gprs信号弱怎么办 au没有波形 没有声音怎么办 屏幕驱动板坏了怎么办 安吉星流量超了怎么办 网络被伪基站覆盖怎么办