#include <iostream>
using namespace std;
class number{
int num;
public:
number(int i ){ num = i;}
// 重载前++
int operator++();
// 重载后++
int operator++(int);
void print(){
cout<<"num="<<num<<endl;
};
};
// 重载前++的方法
int number::operator++(){
num++;
return num;
};
// 重载后++的方法
int number::operator++(int){
int i = num;
num++;
return i;
};
int main(){
number n(10);
int i = ++n;
cout<<"i="<<i<<endl;
// i=11
n.print();
// num=11
i=n++;
cout<<"i="<<i<<endl;
// i=11
n.print();
// num=12
return 0;
}
另外,还可以通过友元函数对运算符进行重载,实现代码如下:
#include <iostream>
using namespace std;
class number{
int num;
public:
number(int i ){ num = i;}
// 重载前++
friend int operator++(number&);
// 重载后++
friend int operator++(number&,int);
void print(){
cout<<"num="<<num<<endl;
};
};
// 重载前++的方法
int operator++(number&a){
a.num++;
return a.num;
};
// 重载后++的方法
int operator++(number&a,int){
int i = a.num++;
return i;
};
int main(){
number n(10);
int i = ++n;
cout<<"i="<<i<<endl;
// i=11
n.print();
// num=11
i=n++;
cout<<"i="<<i<<endl;
// i=11
n.print();
// num=12
return 0;
}