C++运算符重载左移<< 与递增 ++
#include<iostream>
using namespace std;
class ADD
{
public:
//运算符"<<"设置为友元函数,能够访问到私有数据
friend ostream& operator<<(ostream& cout, ADD a);
ADD()
{
m_Num = 0;
}
//前置运算符++,利用引用的方式返回,为了能够对同一个数据的值进行操作
ADD& operator++()
{
m_Num++;
return *this;//返回本身
}
//后置++
//不能用引用的方式返回,temp是个临时变量
ADD operator++(int)
{
ADD temp = *this;//创建临时变量保存初始值
m_Num++;
return temp;
}
private:
int m_Num;
};
//左移运算符<<
ostream& operator<<(ostream& cout, ADD a)
{
cout <<"m_Num = "<<a.m_Num;
return cout;
}
int main()
{
ADD a;
cout << a<<endl;
cout << ++a << endl;
cout << a << endl;
cout << a++ << endl;
cout << a << endl;
return 0;
}
注意ostream& operator<<(ostream& cout, ADD a)不能写成注意ostream& operator<<(ostream& cout, ADD &a),会报错,具体原因还不清楚,望解答。