C++ 友元函数

——能够访问类的私有成员的非成员函数

创建友元

将其原型放在类声明中,并在原型声明前加上关键字friend

friend Time operator *(double m, const Time &t);    // goes in class declaration

 

  • operator*()函数不是成员函数,因此不能使用成员运算符调用
  • 访问权限与成员函数相同
Time operator *(double ml, const Time &t)    // friend not used in definition
{
    ...
}

  只有在类声明中的原型中才能使用friend。除非函数定义也是原型,否则不能在函数定义中使用该关键字

友元是否有于OOP:

只有类声明可以决定哪一个函数是友元,因此类声明仍然控制了哪些函数可以访问私有数据。总之,类方法和友元只是表达类接口的两种不同的机制

 

posted @ 2020-06-10 15:51  孱陵  阅读(207)  评论(0编辑  收藏  举报