第二节,重载运算符

来源:互联网 发布:学党史知国史征文300字 编辑:程序博客网 时间:2024/06/14 00:31

     所谓重载运算符即是扩展你要重载的那个运算符的功能,它就相当于objective-C中得类目一样,你不明白类目得话,也可以这样去理解:比如咱们要扩展一个“+”的功能,在没有扩展的情况下,他的作用就是将基本数据类型的进行相加。我们想要两个复数相加,那么就不能用“+”,这时我们就需要扩展“+”,让他也能让两个复数相加,下面我们就通过一个简单的例子---复数相加,来学习一下运算符的重载。

    首先上代码:

 <!----------------------h文件--------------------->

#ifndef _________Complex__#define _________Complex__#include <iostream>class Complex{public:    double real;//实部    double viurter;//虚部    public:    Complex(double aReal=0,double aViuter=0)    {        this->real = aReal;        this->viurter = aViuter;    }    ~Complex()    {        std::cout<<"销毁"<<std::endl;    }    };    Complex operator+(Complex one,Complex two);#endif /* defined(_________Complex__) */

 <!----------------------h文件--------------------->


 <!----------------------cpp文件--------------------->

#include "Complex.h"Complex operator+(Complex one,Complex two){    return Complex(one.real+two.real,one.viurter+two.viurter);}
 <!----------------------cpp文件--------------------->

 <!----------------------调用--------------------->

#include <iostream>#include "Complex.h"using namespace std;int main(int argc, const char * argv[]){    Complex com1(2,3),com2(5,6),sum;   // sum = com1+com2;    sum = operator+(com1,com2);    cout<<"sum.real = "<<sum.real<<std::endl;    return 0;} <!----------------------调用---------------------->1,形式:返回类型 operator重写的符号(参数)2,调用的时候两种方式都可以      sum = com1+com2;   或者      sum = operator+(com1,com2);