可以是成员函数,也可以是友元函数,还可以是非成员函数和非友元函数(即普通的函数,这种情况用的比较少)
成员函数: 通过this指针访问本类的数据成员
要求运算符左侧的参数必须是类对象,并且与运算符函数的类型相同
重载流插入运算符<<和流提取运算>>必须用友元函数的原因:
istream & operator << (istream & , 用户自定义的类 &);
ostream & operator << (ostream & , 用户自定义的类 &);
从上面的形式可以看到,重载<<,>>时的第一个参数是istream和ostream类 类型,不是用户自定义的类,所以不能用作成员函数。