C++中++,--操作符重载需要说明是++(--)在操作数前面,还是在操作数后面,区别如下:

代码经过测试无误(起码我这里没问题^_^)

C++ operator操作符重载(++,--,-,+,())_操作符重载C++ operator操作符重载(++,--,-,+,())_ios_02Code
 1C++ operator操作符重载(++,--,-,+,())_#include_03#include <iostream>
 2C++ operator操作符重载(++,--,-,+,())_#include_03#include <cstdlib>
 3C++ operator操作符重载(++,--,-,+,())_#include_03using namespace std;
 4C++ operator操作符重载(++,--,-,+,())_#include_03template<typename T> class A
 5C++ operator操作符重载(++,--,-,+,())_操作数_07C++ operator操作符重载(++,--,-,+,())_类型变量_08C++ operator操作符重载(++,--,-,+,())_操作数_09{
 6C++ operator操作符重载(++,--,-,+,())_类型变量_10public:
 7C++ operator操作符重载(++,--,-,+,())_操作数_11C++ operator操作符重载(++,--,-,+,())_#include_12    A(): m_(0)C++ operator操作符重载(++,--,-,+,())_操作数_09{
 8C++ operator操作符重载(++,--,-,+,())_#include_14    }
 9C++ operator操作符重载(++,--,-,+,())_类型变量_10    // +
10C++ operator操作符重载(++,--,-,+,())_类型变量_10    const T operator + (const T& rhs)
11C++ operator操作符重载(++,--,-,+,())_操作数_11C++ operator操作符重载(++,--,-,+,())_#include_12    C++ operator操作符重载(++,--,-,+,())_操作数_09{
12C++ operator操作符重载(++,--,-,+,())_类型变量_10           // need to be repaired , but see it is only a demo
13C++ operator操作符重载(++,--,-,+,())_类型变量_10           return (this->m_ + rhs);
14C++ operator操作符重载(++,--,-,+,())_#include_14    }
15C++ operator操作符重载(++,--,-,+,())_类型变量_10    // -
16C++ operator操作符重载(++,--,-,+,())_操作数_11C++ operator操作符重载(++,--,-,+,())_#include_12    const T operator - (const T& rhs)C++ operator操作符重载(++,--,-,+,())_操作数_09{
17C++ operator操作符重载(++,--,-,+,())_类型变量_10           // need to be repaired , but see it is only a demo
18C++ operator操作符重载(++,--,-,+,())_类型变量_10             return (this->m_ - rhs);
19C++ operator操作符重载(++,--,-,+,())_#include_14    }
20C++ operator操作符重载(++,--,-,+,())_操作数_11C++ operator操作符重载(++,--,-,+,())_#include_12    T getM()C++ operator操作符重载(++,--,-,+,())_操作数_09{
21C++ operator操作符重载(++,--,-,+,())_类型变量_10      return m_;
22C++ operator操作符重载(++,--,-,+,())_#include_14    }
23C++ operator操作符重载(++,--,-,+,())_类型变量_10    
24C++ operator操作符重载(++,--,-,+,())_类型变量_10    // ++在前的模式,这里返回的是引用 ,准许++++A
25C++ operator操作符重载(++,--,-,+,())_操作数_11C++ operator操作符重载(++,--,-,+,())_#include_12    A& operator ++ ()C++ operator操作符重载(++,--,-,+,())_操作数_09{
26C++ operator操作符重载(++,--,-,+,())_类型变量_10           (this->m_)++;
27C++ operator操作符重载(++,--,-,+,())_类型变量_10           return *this;
28C++ operator操作符重载(++,--,-,+,())_#include_14    }
29C++ operator操作符重载(++,--,-,+,())_类型变量_10    // ++ 在后,这里返回的是一个新的A类型变量,且不可改变
30C++ operator操作符重载(++,--,-,+,())_类型变量_10    // 目的是防止出现 A++++情况
31C++ operator操作符重载(++,--,-,+,())_操作数_11C++ operator操作符重载(++,--,-,+,())_#include_12    const A operator ++(int a)C++ operator操作符重载(++,--,-,+,())_操作数_09{
32C++ operator操作符重载(++,--,-,+,())_类型变量_10           A<T> b = *this;
33C++ operator操作符重载(++,--,-,+,())_类型变量_10           (this->m_)++;
34C++ operator操作符重载(++,--,-,+,())_类型变量_10           return b;
35C++ operator操作符重载(++,--,-,+,())_#include_14    }
36C++ operator操作符重载(++,--,-,+,())_类型变量_10private:
37C++ operator操作符重载(++,--,-,+,())_类型变量_10    T m_;
38C++ operator操作符重载(++,--,-,+,())_操作数_54};
39C++ operator操作符重载(++,--,-,+,())_#include_03
40C++ operator操作符重载(++,--,-,+,())_#include_03
41C++ operator操作符重载(++,--,-,+,())_操作数_07C++ operator操作符重载(++,--,-,+,())_类型变量_08int main(void)C++ operator操作符重载(++,--,-,+,())_操作数_09{
42C++ operator操作符重载(++,--,-,+,())_类型变量_10    int i = 0;
43C++ operator操作符重载(++,--,-,+,())_类型变量_10    cout<<++++i<<endl;
44C++ operator操作符重载(++,--,-,+,())_类型变量_10    // i++++ is not allowed
45C++ operator操作符重载(++,--,-,+,())_类型变量_10    A<int> a;
46C++ operator操作符重载(++,--,-,+,())_类型变量_10    A<int> b = ++a;
47C++ operator操作符重载(++,--,-,+,())_类型变量_10    cout<<b.getM()<<endl;
48C++ operator操作符重载(++,--,-,+,())_类型变量_10    A<int> c = a++;
49C++ operator操作符重载(++,--,-,+,())_类型变量_10    cout<<c.getM()<<endl;
50C++ operator操作符重载(++,--,-,+,())_类型变量_10    cout<<a.getM()<<endl;
51C++ operator操作符重载(++,--,-,+,())_类型变量_10    int t = a+2;
52C++ operator操作符重载(++,--,-,+,())_类型变量_10    cout<<t<<endl;
53C++ operator操作符重载(++,--,-,+,())_类型变量_10    system("pause");
54C++ operator操作符重载(++,--,-,+,())_类型变量_10    return 0;    
55C++ operator操作符重载(++,--,-,+,())_类型变量_10    
56C++ operator操作符重载(++,--,-,+,())_操作数_54