cout 是ostream 类型的对象
cin 是istream类型的对象
如果<</>>运算符实现为成员函数,那么调用者应该是ostream/istream,而我们无权增加标准库的代码,因此
输入输出运算符只能定义为全局函数
cout << 类对象<<endl;
ostream& operator<<(ostream& os,const Point& p)
{
return os<<p.x<<","<<p.y;
}
注意:再输入输出过程中,cin/cout会记录错误标志,因此不能加const属性
istream& operator>>(istream& is,const Point& p)
{
return is>>p.x>>p.y;
}
在重载操作符时要根据操作符实际的功能和意义来确定具体参数,返回值,是否具有const属性,
是否时引用还是临时对象
重载运算符时要符合清理(要有意义),要以实际用途为前提
重载操作符的意义是为了让对象的操作更简单,方便,而不是为了炫技。