所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。我们以简单的一个点Point类来说明各运算符重载的具体实现,在实际的工作学习中,我们一般根据自己的需求来重写我们自己的运算符重载。
代码如下:
#include <iostream>
#include <istream>
#include <ostream>
using namespace std;
class Point
{
public:
Point():m_x(0),m_y(0){}
Point(const int x, const int y)
{
m_x = x;
m_y = y;
}
~Point(){}
// +运算符重载
Point operator+ (const Point Lef)
{
return Point(this->m_x + Lef.m_x, this->m_y + Lef.m_y);
}
//友元 >>重载
friend istream & operator>>(istream &in, Point &point);
//友元