C++种两种不同运算符重载的方法的解析和方法的选择。

 运算符重载概念:对已有的运算符重新定义,赋予其另外一种功能,以适应不同的数据类型

这里因为起初都是用户自己编写的重载函数的名称不具备统一性性辨识度不高,但后来编译器更新进行了统一化,重载函数名统一为operator后面加上你重载的运算符的名称。例如+号重载为operator+,-号重载为operator-,由此类推。

重载+号的代码示例

方法一:成员函数重载

 如上图+号重载后实现了两个plussign类型的对象里的成员a分别相加成员b分别相加。

方法二:全局函数的重载

 可以很明显的看出两种不同的方法传入的参数的个数各不相同但是结果完全一样,那么这两种方法到底谁会更实用呢那么接下来我们来看对(<<)左移运算符重载从中我们就可以直观的看出两种方法的差异。

重载<<号代码示例

方法一:成员函数重载

在15行我们形参为类型为cout类型的引用,我们只要选中cout按F12就可以查看打cout的类型。

 这里我们用了两种不同的形式调用了重载函数第二种方式相对一第一种更简介,接下来我们在看看全局函数方式的重载又会如何呢。

方法二:全局函数的重载

 总结:

由以上对比可以看出两种不同的方法进行重载运算符,有些特定情况下能达到特定的效果,但是在重载后的简便方式的写法和逻辑上存在一些差异,我们要根据实际生产要求采取相应的方法,以免出现一些与正常逻辑违背的写法降低了代码的可读性。建议尽量的使用全局函数重载法,会给你我带来更多便捷。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值