C++ 友元函数

0
13

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

创建友元:

将其原型放在类声明中,并在原型声明前加上关键字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:

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

<

发布回复

请输入评论!
请输入你的名字