++,--运算符的使用

++,--运算符的使用分为两种:

1.单独使用,这个没有什么好介绍的,放在操作数的前面和后面效果一样。

2.参与运算使用,放在操作数的前面(++i),先自增或者自减,然后再参与运算(i = i+1;temp = i;temp作为结果参加运算,这里的temp不是真实存在的,只是方便理解用的,只有i占用内存);放在操作数的后面(i++),先参与运算,再自增或者自减(temp = i;i = i+1;temp作为结果参加运算,这里的temp是真实存在的,因为它要保存i原来的值,所以i与temp都是占用内存的)。

--的用法也是类似。

下面给出一个有趣的情况:

总结:在不关心表达式的返回值时,优先用前缀++, 以避免不必要的拷贝和内存浪费。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是重载运算符++和--的Complex类的实现代码: ```c++ #include <iostream> using namespace std; class Complex { private: double real, imag; public: Complex(double r = 0, double i = 0) : real(r), imag(i) {} Complex& operator++(); // 前置++ Complex operator++(int); // 后置++ Complex& operator--(); // 前置-- Complex operator--(int); // 后置-- void show() const { cout << "(" << real << ", " << imag << ")" << endl; } }; Complex& Complex::operator++() { real++; return *this; } Complex Complex::operator++(int) { Complex temp(*this); real++; return temp; } Complex& Complex::operator--() { real--; return *this; } Complex Complex::operator--(int) { Complex temp(*this); real--; return temp; } int main() { Complex a(1, 2); (++a).show(); // 输出:(2, 2) a.show(); // 输出:(2, 2) (a++).show(); // 输出:(2, 2) a.show(); // 输出:(3, 2) (--a).show(); // 输出:(2, 2) a.show(); // 输出:(2, 2) (a--).show(); // 输出:(2, 2) a.show(); // 输出:(1, 2) (a--).show(); // 输出:(1, 2) a.show(); // 输出:(0, 2) return 0; } ``` 在上面的代码中,我们为Complex类重载了运算符++和--,包括前置++、后置++、前置--和后置--。对于前置++和前置--,我们直接修改实部real的值,并返回*this的引用;对于后置++和后置--,我们先用*this的值初始化一个临时对象temp,然后再修改实部real的值,并返回这个临时对象temp,从而实现后置++和后置--。在主程序中,我们对Complex对象a进行了多次++和--运算,并输出了运算结果,验证了运算符的正确性。注意,由于后置++和后置--返回的是临时对象,因此如果直接调用a--.show(),则不能正确输出a--的结果,必须使用(a--).show()的形式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值