C++ 友元函数

——可以访问类的私有成员的非成员函数函数

建立友元

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

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。除非函数定义也是原型,不然不能在函数定义中使用该关键字blog

友元是否有于OOP:

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

相关文章
相关标签/搜索