运算符重载的基本概念

/ 0评 / 0

运算符

C++预定义表示对数据的运算

自定义数据类型与运算符重载

C++提供了数据抽象的手段:
用户自己定义数据类型 -- 类

运算符重载

对抽象数据类型也能够直接使用C++提供的运算符

同一个运算符, 对不同类型的操作数, 所发生的行为不同

运算符重载的实质是函数重载

返回值类型 operator 运算符(形参表)
{
……
}  

在程序编译时:

运算符重载为普通函数

Complex operator+ (const Complex & a, const Complex & b)
{
return Complex( a.real+b.real, a.imaginary+b.imaginary);
}

运算符重载为成员函数

只需要一个参数

class Complexs
{
  public:
    Complex(double r = 0.0, double m = 0.0) : real(r), imaginary(m) {} // constructor
    Complex operator+(const Complex &);                                // addition
    Complex operator-(const Complex &);                                // subtraction
  private:
    double real;      // real part
    double imaginary; // imaginary part
};
// Overloaded addition operator
Complex Complex::operator+(const Complex &operand2)
{
  return Complex(real + operand2.real,
                 imaginary + operand2.imaginary);
}
// Overloaded subtraction operator
Complex Complex::operator-(const Complex &operand2)
{
  return Complex(real - operand2.real,
                 imaginary - operand2.imaginary);
}
int main()
{
  Complex x, y(4.3, 8.2), z(3.3, 1.1);
  x = y + z;
  x = y - z;
  return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注