友元函数

friend 功能不是类的成员函数,但可以访问类的私有的和受保护成员。 友元函数不被视为类成员;它们是为特殊访问权限权限的规则外部函数。 friends 不是在类的大小,并且,它们不会调用使用成员选择运算符 (. 和 –AMP_GT),除非它们是另一个类的成员。 friend 功能由授予访问权限的类声明。 friend 声明任何位置在类声明可以放置。 它不影响的受访问控制关键字的。

下面的示例演示 Point 类和一个友元函数, ChangePrivate。 friend 函数访问它接收作为参数传递给 Point 对象的私有数据成员。

示例

// friend_functions.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class Point
{
    friend void ChangePrivate( Point & );
public:
    Point( void ) : m_i(0) {}
    void PrintPrivate( void ){cout << m_i << endl; }

private:
    int m_i;
};

void ChangePrivate ( Point &i ) { i.m_i++; }

int main()
{
   Point sPoint;
   sPoint.PrintPrivate();
   ChangePrivate(sPoint);
   sPoint.PrintPrivate();
}
  

请参见

参考

friends (C++)