您的位置是:少儿编程网>少儿C/C++编程少儿C/C++编程

c++编程进阶三-运算符的重载

少儿编程网2019-09-12 23:46:18少儿C/C++编程 人已围观 来源:高维数学 -用户投稿

简介这里为大家分享的是,我试图弄懂运算重载这个知识点的过程和期间的收获。c++为什么比其他语言难学,主要也是因为它功能强大而且使用灵活。

版权所有:http://wWw.pxcodeS.com

各位小伙伴大家好:zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

本期分享的内容主要是涉及到运算符的重载,这个内容要想学明白真的不容易。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

这里为大家分享的是,我试图弄懂运算重载这个知识点的过程和期间的收获。c++为什么比其他语言难学,主要也是因为它功能强大而且使用灵活。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

(类似**跳舞,挖掘机开啤酒等)zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

首先来看**终结果:zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

它实现的是向量的输出和加减运算。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

下面来看代码:zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

代码不太长,但不算简单。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

首先要和大家分享到的是:上面代码在重载运算符的时候,+ 和 -、<<声明的函数不一样,代码8-10行zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

+重载时声明的是普通成员函数,而-和<<声明的是友元函数。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

它们的区别在于重载为成员函数时,函数的参数比原来的操作数要少一个,也就是只要传递一个参数。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

而重载为友元函数时操作数没有变化,还是需要两个参数。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

另外大家可以注意一下第15行和第20行的区别。第15行的前面多了::(域运算符),而第20行不需要。这也是因为-重载为友元函数,而+重载为成员函数的缘故。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

**后是关于<<的重载,它和+和-重载的区别是,它返回了一个引用而不是对象。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

因为在返回引用的时候我们可以持续输出,也就是输出v3之后我们还可以继续v2,可以写成cout<<v3<<v2;的形式。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

而如果返回对象也就是写成zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

ostream operator << (ostream& os,MyVector v)zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

的形式则不能持续输出。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

至于为什么说起来也比较复杂,牵涉甚广,就留给真正的大神来为大家解答。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

如果您知道答案也欢迎给我留言和大家分享。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

本期就为大家分享到这里,我们下期再会。zJk少儿编程网-Scratch_Python_教程_免费少儿编程学习平台

版权所有:http://wWw.pxcodeS.com


相关文章:

支持一下 ( )

c++编程进阶三-运算符的重载

      匿名评论
    • 评论
    人参与,条评论
    少儿编程网

客服在线

服务时间

周一至周日 9:00-21:00