所谓运算符重载,就是给原有运算符赋予新的功能。比如说,加好(+)是用来做两个数字相加操作的(如:1+1=2),但是,我们往往用加号来让两个字符串作拼接(如:慕+课=慕课),那么,这个时候就是给加号做了运算符的重载。我们来看一个常见的例子:
在这个例子当中,我们就使用了加号去连接多个字符串,使其拼接成一个字符串,而且,我们在打印的时候,也可以将拼接好的字符串直接打印出来,那么这个字符串就进行了多个运算符的重载(加号运算符做了重载,输出运算符也做了重载,等号运算符也做了重载)。那么,问题是:这些重载究竟是怎么做的呢?后续课程为大家一一讲解。
我们再来看另外一个例子:
在这个例子中,有两个坐标,这两个坐标其实也是可以相加的,相加之后你二舅会形成一个新的坐标。可是,这两个坐标相加对于加号本身来说,并不具备这样的功能。为了能让其具备这样的功能,我们就可以通过运算符重载来实现。同时,如果我们想直接输出一个坐标,我们也可以通过重载输出运算符来实现。
下面我们来看一看运算符重载的本质!
其实,运算符重载的本质就是:函数重载。它并没有什么神秘的地方。
下面介绍一下,定义运算符重载的关键字:operator。
那么,运算符重载其实有很多种,包括:一元运算符重载、二元运算符的重载等。
一元运算符重载
对于一元运算符的重载,在这里,我们举两个例子: