让<<支持显示一个对象。编写输出流操作符函数,左操作数的类型是ostream,所以这个函数必须是全局的,为了访问poin私有对象,声明为point类的友元函数。如下:
class point{
public:int x;
private:
int y;
public:
point(int x,int y){this->x=x;this->y=y;}
point(){x=0;y=0;}
point &operator=(const point &other){
this->x=other.x;
this->y=other.y;
return *this;
}
friend ostream &operator<<(ostream &os,point &pt);
};
ostream &operator<<(ostream &os,point &pt){
os<<pt.x<<" "<<pt.y<<endl;
return os;
}
int main(){
point n(2,3);;
point p=n;
cout<<p;
}
结果:2 3
cout作为第一个参数传入,p为第二个参数。