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