/* 运算符函数作为类的友元 */
#include <iostream>
using namespace std;class Increase
{
public:
Increase(int x):value(x){}
friend Increase & operator++(Increase & ); // 前自增
friend Increase operator++(Increase &,int); // 后自增
void display()
{ cout <<"the value is " <<value <<endl; }
private:
int value;
};
Increase & operator++(Increase & a)
{
a.value++; // 先进行自增运算
return a; // 再返回原对象
}
Increase operator++(Increase& a, int)
{
Increase temp(a); // 通过拷贝构造函数保存原有对象值
a.value++; // 原有对象增量修改
return temp; // 返回原有对象值
}
int main()
{
Increase n(20);
n.display(); // 显示:20
(n++).display(); // 显示临时对象值:20
n.display(); // 显示原有对象:21
++n;
//n++;
n.display(); //22
++(++n);
//n++;n++;
n.display(); //24
system("pause");
return 0;
}