<<只能使用友元函数的形式重载,+运算符可以友元也可以成员函数方式重载,但是参数的个数就不同了。以友元函数方式重载+运算符是两个参数,以成员函数重载只有一个参数。
point.h:
#include <iostream>
using namespace std;
class Point
{
public:
Point();
Point(int x, int y);
Point(const Point& p);
friend ostream & operator<<(ostream &out, Point &p);
Point operator+(Point& p);
~Point();
int getX();
int getY();
private:
int m_x;
int m_y;
};
point.cpp:
#include <iostream>
#include "point.h"
using namespace std;
Point::Point(): m_x(0), m_y(0)
{
}
Point::Point(int x, int y): m_x(x), m_y(y)
{
}
Point::~Point()
{
}
int Point::getX()
{
return this->m_x;
}
int Point::getY()
{
return this->m_y;
}
ostream & operator<<(ostream &out, Point &p)
{
out << '[' << p.m_x << ",