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

2020-01-06 12:35:05王旭
在表达式中,我们常会用到各种操作符(运算符),例如1+3和4*2。然而,这些操作符只能用于C++内置的一些基本数据类型。如果我们自己编写一个复数类,它也会有加减法的操作,那么它能否摆脱一串冗长的函数名,而享用加号呢?

在第六章我们学到过,函数是可以重载的,即同名函数针对不同数据类型的参数实现类似的功能。在C++中,操作符也是可以重载的,同一操作符对于不同的自定义数据类型可以进行不同的操作。

作为成员函数

在我们学习操作符重载前,我们先看看原先这个复数类是如何定义的:(程序16.3.1)
//complex.h
#include <iostream>
using namespace std;
class Complex//声明一个复数类
{
   public:
   Complex(Complex &a);//拷贝构造函数
   Complex(double r=0,double i=0);
   void display();//输出复数的值
   void set(Complex &a);