您现在的位置是:网站首页>少儿C/C++编程少儿C/C++编程

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

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

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

各位小伙伴大家好:

本期分享的内容主要是涉及到运算符的重载,这个内容要想学明白真的不容易。

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

(类似坦克跳舞,挖掘机开啤酒等)

首先来看最终结果:

它实现的是向量的输出和加减运算。

下面来看代码:

代码不太长,但不算简单。

首先要和大家分享到的是:上面代码在重载运算符的时候,+ 和 -、<<声明的函数不一样,代码8-10行

+重载时声明的是普通成员函数,而-和<<声明的是友元函数。

它们的区别在于重载为成员函数时,函数的参数比原来的操作数要少一个,也就是只要传递一个参数。

而重载为友元函数时操作数没有变化,还是需要两个参数。

另外大家可以注意一下第15行和第20行的区别。第15行的前面多了::(域运算符),而第20行不需要。这也是因为-重载为友元函数,而+重载为成员函数的缘故。

最后是关于<<的重载,它和+和-重载的区别是,它返回了一个引用而不是对象。

因为在返回引用的时候我们可以持续输出,也就是输出v3之后我们还可以继续v2,可以写成cout<<v3<<v2;的形式。

而如果返回对象也就是写成

ostream operator << (ostream& os,MyVector v)

的形式则不能持续输出。

至于为什么说起来也比较复杂,牵涉甚广,就留给真正的大神来为大家解答。

如果您知道答案也欢迎给我留言和大家分享。

本期就为大家分享到这里,我们下期再会。


扩展阅读:

支持一下吧 ( )

文章评论

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

客服在线

服务时间

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