友元(运算符重载深入)


友元函数

创建友元的第一步就是将其原型放在类声明中,并在原型前面加上关键字friend

class Time
{
public:
         friend Time operator*(double m, const Time & t);
}

该原型意味着以下两点:

  1. 友元函数虽然是在类中声明的,但是它不是类的成员函数
  2. 友元函数虽然不是类的成员函数,但是它与类成员函数的访问权限相同

由于友元函数不是类成员函数,所以友元函数定义时不用使用Time::限定符。

Time operator*(double m, const Time & t)
{
  ...  
}

 

用友元函数重载cout

std::ostream & operator<<(std::ostream & os, const Time & t)
{
    os<<"hours: "<<t.hours<<", minutes: "<<t.minutes<<std::endl;
    return os;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM