一、操作符重载的概念

操作符重载(Operator Overloading)是指在C++程序中可以对运算符进行重新定义,使其能够用于用户自定义的数据类型上,从而使得程序的可读性和可维护性大大提高。操作符重载可以使程序更加简洁,使用起来更加方便。

二、实现操作符重载的方法

要实现操作符重载,需要使用C++中的函数重载(Function Overloading)特性。函数重载是指在同一个作用域中,函数名相同,但参数类型、数量或者顺序不同的函数。用函数重载的方法,可以实现操作符重载。

三、实现操作符重载的步骤

1. 定义一个类:定义一个类,将要重载的操作符作为类的成员函数,或者将要重载的操作符作为友元函数。


class Complex
{
  public:
    Complex(double r, double i):real(r), imag(i){}
    Complex operator+(const Complex &c2);
  private:
    double real;
    double imag;
};

2. 实现成员函数或者友元函数:实现成员函数或者友元函数,实现操作符重载。


Complex Complex::operator+(const Complex &c2)
{
    Complex c;
    c.real = real + c2.real;
    c.imag = imag + c2.imag;
    return c;
}

3. 使用操作符重载:在程序中使用操作符重载,调用重载函数,实现操作符重载。


int main()
{
    Complex c1(1, 2);
    Complex c2(2, 3);
    Complex c3 = c1 + c2;
    return 0;
}