C++友元重载输出操作符(下篇)

常用的友元:重载<<运算符

示例解释重载

假设trip是一个Time对象。为显示Time的值,可以使用show()函数,然而,如果可以像下面这样操作更好:

cout<< trip; //make cout recognize Time class?

解释
<< 是可以被重载的C++运算符之一。

cout是一个 ostream 对象,它是智能的,能够识别所有的c++ 基本类型。这是因为对于每种基本类型,ostream 类声明中都包含了相应的重载的operator<<() 定义。

因此,要使cout 能够识别Time对象,一种方法是将一个新的函数运算符添加到 ostream 类的声明中。

但修改 iostream 文件不安全,这样做会在标准接口上浪费时间。相反,通过Time 类声明来让 Time 类知道如何使用cout 。

<<的第一种版本

要使Time 类对象知道使用 cout ,必须使用友元函数。这是什么原因呢?因为下面这样的语句使用两个对象,第一个是 ostream类对象(cout) :

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值