C++教程:C++操作符的重载

2020-01-06 12:35:05王旭
  • 参数表中罗列的是操作符的各个操作数。重载后操作数的个数应该与原来相同。不过如果操作符作为成员函数,则调用者本身是一个操作数,故而参数表中会减少一个操作数。(请对比程序16.3.2与程序16.3.3)
  • 各个操作数至少要有一个是自定义类型的数据,如结构或类。
  • 尽量不要混乱操作符的含义。如果把加号用在减法上,会使程序的可读性大大下降。
    下面我们把操作符作为成员函数,来实现复数的加减法:(程序16.3.2)
    //complex.h
    #include <iostream>
    using namespace std;
    class Complex//声明一个复数类
    {
       public:
       Complex(Complex &a);
       Complex(double r=0,double i=0);
       void display();
       void operator =(Complex a);//赋值操作
       Complex operator +(Complex a);//加法操作
       Complex operator -(Complex a);//减法操作
       Complex operator +(double r);//加法操作
       Complex operator -(double r);//减法操作