首页 > 代码库 > 初探C++运算符重载学习笔记<3> 增量减量运算符重载
初探C++运算符重载学习笔记<3> 增量减量运算符重载
初探C++运算符重载学习笔记<1>初探C++运算符重载学习笔记<2> 重载为友元函数
增量、减量运算符++(--)分别有两种形式:前自增++i(自减--i),后自增i++(自减i--)
因此当我们重载该运算符时,要重载相应形式的运算符。
T & operator ++() // 前自增++i
T & operator ++(int) //后自增 i++
举例:
#include <iostream>using namespace std;class complex{ double re; double im;public: complex(double _re,double _im):re(_re),im(_im){}; void print(){cout<<re<<" "<<im<<endl;} friend complex operator+(const complex &a ,const complex &b); //想想返回为什么不是complex & complex& operator++(); complex& operator++(int);};complex operator+(const complex &a , const complex &b){ return complex(a.re + b.re , a.im + b.im );}complex& complex::operator++() //前自增 ++i{ re = re + 1; return *this;}complex& complex::operator++(int) //后自增 i++ int只是区分前后自增{ im = im + 1; return *this;}int main(){ complex a(1,2); complex b(3,4); complex c = a + b; complex d = a + b + c; c.print(); d.print(); (c++)++; c.print(); ++(++d); d.print(); return 0;}
结果输出为:
c后自增两次 虚部由6到8
d前自增两次 实部从10到12
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。