#include <iostream>
using namespace std;
class item;
ostream & operator <<(ostream & os, item& _item);
class item {
public:
friend ostream& operator<< (ostream& os, item& _item);
int i;
item(int m) : i(m) {}
void operator <<(ostream& os) {
cout << this->i;
// return os;
}
};
ostream & operator <<(ostream & os, item & _item) {
os << "在操作符中:" << _item.i;
return os;
}
int main() {
item a(1), b(2);
a = b;
cout << a.i << endl;
cout << &a << endl;
cout << a << endl;
return 0;
}
注:重载操作符的原理大都有编译器来做了,比如会根据操作符左右两边的对象类型(从左到右的顺序),然后选择适当的函数,并进行转化。