首先我们来看一下。
1.加号运算符的成员函数
详细说明成员方法重载:
因为成员函数()的话,我们是可以直接通过Student结构体来调用这个方法(只能因为他的名字比较特殊而已)如下代码:
我们可以看出直接就是a来调用他的方法,然后传入需要相加的b来进行相加。
又因为我们上方说了这个函数的名字比较特殊(所以肯定有他的特殊之处),我们直接可以通过下面方式来进行相加。
我们可以来看一下运行结果:
其实也可以实现多个Student来进行相加。
输出的结果:
2.加号运算符的友元函数
首先我先来说一下友元函数与成员函数的区别:
友元函数
1.。
2.。
3.。
例:
(1).用友元符修饰的全局变量没有报错,而且可以达到我们想要的效果。
(2).不用友元符修饰的全局变量也没有报错,而且也可以输出。
成员函数
整体代码:
因为operator+是一个特殊重载方法,所以我们可以直接写成下方的相加形式。
因为关于友元函数和成员函数区别,上面我有详细说明,这里我就不在做仔细的解释了。
1.左移运算符成员函数达不到我们的效果
整体代码如下:
成员函数:
如果我们调用这个方法的话,如下所示:
这样达不到我们想要的cout<<student<<endl的效果。因为他的左移运算符前不是我们需要的cout(因为cout是ostream类型)而且我们现在是a.opeartor是Student类型,所以达不到我们需要的效果。
2.如果使用友元函数
整体代码:
全局函数:
。
如何使用这个全局函数,如下方:
我们看一下效果:
因为opeartor<<是个左移运算符,所以他还有特殊的更简单的输出方式:
也可以达到我们所需要的效果:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/2990.html