c++ operator定义为friend function

本文讨论了在 C++ 中为何将运算符函数定义为 friend 函数,主要原因是方便调用和类型转换。通过示例展示了如何使用 friend 函数重载 `operator+` 和 `operator<<`。还提到了成员函数和友元函数在运算符重载中的适用场景,如单目运算符通常用成员函数,双目运算符适合用友元函数,并给出了各种考虑因素,包括对对象状态的修改、隐式类型转换等。
摘要由CSDN通过智能技术生成

 

 
因为自己写一个小程序的时候弄了个问题,对于一些operator定义成成员函数则是不可以,而定义成friend则是可以,有些不理解,看到redsnow写的一篇文章有些启发,原文链接是http://blog.chinaunix.net/u/24250/showart_182419.html,原文如下。
 
对于class中将operator函数定义为friend主要有以下考虑:
 
1.friend function是对外公开的,而class method是属于对象的,有些情况调用不方便
 
 
2.对某些需要两个参数的operator function,定义friend比较方便,如下例中operator <<
 
3.所有class   method必须有匹配的左值类型进行调用而friend则无需这样,只要能隐式转化成当前类型就可以调用该
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值