运算符重载为非成员函数
哪里错了啊?
#include <iostream>
using namespace std;
class Point{
private:
int x,y;
public:
Point(int x=0,int y=0):x(x),y(y){}
friend Point operator+(const Point &p1,const Point &p2);
void display()const;
//Point operator+(const Point &p)const;
};
Point operator+(const Point &p1,const Point &p2){
return Point(p1.x+p2.x,p1.y+p2.y);
}
/*Point Point::operator+(const Point &p)const{
return Point(x+p.x,y+p.y);
}*/
void Point::display()const{
cout<<"x:"<<x<<",y:"<<y<<endl;
}
int main()
{
Point p1(1,2),p2(3,4);
Point p3;
p3=p1+p2;
p3.display();
return 0;
}
哪里错了啊?#include <iostream>
//using namespace std; //using在这里 出错
class Point{
private:
int x,y;
public:
Point(int x=0,int y=0):x(x),y(y){}
friend Point operator+(const Point &p1,const Point &p2);
void display()const;
//Point operator+(const Point &p)const;
};
Point operator+(const Point &p1,const Point &p2){
return Point(p1.x+p2.x,p1.y+p2.y);
}
/*Point Point::operator+(const Point &p)const{
return Point(x+p.x,y+p.y);
}*/
using namespace std;//改到这里就好。
void Point::display()const{
cout<<"x:"<<x<<",y:"<<y<<endl;
}
int main()
{
Point p1(1,2),p2(3,4);
Point p3;
p3=p1+p2;
p3.display();
return 0;
}