为什么c++要引入友元函数?

例如 程序 表示为 A = B * 2.75可以等于A = B.operator*(2.75)
但是 A = 2.75 * B 就不能写成这样 因为 operator *是成员函数 只有类的对象才能引用 

A = B * 2.75这样的写法只有非成员函数才能这么写因为:
A  = operaotor(2.75 ,B)
但是由于大部分非成员函数 都不能访问类的数据部分 所以 引入 友元
friend time operator *();

不再使用 由于 operator *()函数不是成员函数 所以不需要 time::限定符 也不需要加上 friend


关于 cout<<打印对象内容 进行重载时 

必须使用 友元 因为如果是成员函数 time<<cout形式的
如果是 友元函数就可以使用 cout<<time

cout 是ostream对象
void operator <<(ostream &os,const time & t)
{
}
这个函数不能连接 
cout<<trip<<"Tuesday"
cout<<x<<y;

(cout<<x)<<y;


由于重载operator <<的返回值还是 ostream类型所以这样可以
ostream &operator<<(ostream &os,const time &t);
ostream:输出至屏幕上  ofstream:输出至文件
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值