c++中运算符重载为类成员函数

来源:互联网 发布:燕十八mysql教程 编辑:程序博客网 时间:2024/06/07 07:23

    运算符重载是对已有的运算符赋予多重含义,在C++中预定义的运算符其运算对象是基本数据类型,而不适用于用户自定义类型(例如类),可以重载大多数c++已有的运算符(. :: ?: .*除外),但是运算符的重载不改变其优先级和结合性以及操作数的个数。

    运算符重载的生命形式:

                                         函数类型   operator 运算符(形参)

                                          {

                                            ... ...

                                           }

(2)重载为类成员函数时

      参数个数=原操作数-1      //例如对类的重载操作符+,- ,后置操作符++,--除外

例(重载+运算符,实现对类的运算):

#include<iostream>
using namespace std;
class complex
{public:
   complex(double x,double y){real=x;imag=y;}   /*定义complex对象时,给出两个实参时调用此构造函数,如果设置了默认参数,则不需要重新定义下面的无参构造函数*/
   complex(){}                                  //定义对象,不给实参时调用此构造函数 ,此无参构造函数不能省略               
   complex operator +(complex complex1); //+重载为成员函数
   void display(){cout<<"real:"<<real<<" "<<"imag"<<imag<<endl;}
private:
   double real,imag;
};
complex complex::operator+(complex complex1)
{
     complex complex0;
    complex0.real=real+complex1.real;
    complex0.imag=imag+complex1.imag;
    return complex(complex0.real,complex0.imag);
}
void main()
{
    complex a(2,3),b(4,5),c;
   c=a+b;
 c.display();
}

0 0