C++语法小记---前置操作符和后置操作符

前置操作符和后置操作符
  • 单独的"++i"和"i++"是否有区别

    • 对于基本类型:

      • 二者没有区别,因为编译器会对代码进行优化,二者的汇编代码完全相同

    • 对于类类型:

      • 二者有区别

      • 前置的效率更高,建议使用

  • 重载"++i"和"i++"

    • 重载前置操作符:classname& operator ++()

    • 重载后置操作符:classname operator ++(int)

 

 1 #include <iostream>
 2 #include <string>
 3 
 4 using namespace std;
 5 
 6 class Test
 7 {
 8     int mValue;
 9 public:
10     Test(int i)
11     {
12         mValue = i;
13     }
14     
15     int value()
16     {
17         return mValue;
18     }
19     
20     Test& operator ++ () //前置重载
21     {
22         mValue += 1;
23         return *this;
24     }
25     
26     Test operator ++ (int) //后置重载
27     {
28         Test ret(mValue);
29         mValue += 1;
30         return ret;
31     }
32 };
33 
34 int main()
35 {   
36    Test t1(1);
37    cout<<"t1++ = "<<(++t1).value()<<endl; // t1++ = 2
38    
39    Test t2(1);
40    cout<<"t2++ = "<<(t2++).value()<<endl; //t2++ = 1
41    
42     return 0;
43 }

 

转载于:https://www.cnblogs.com/chusiyong/p/11295336.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值