类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。
友元可以是一个函数,该函数被称为友元函数;
class Box
{
private:
double width;
public:
double length;
void setWidth(double width);
friend void printWidth(Box box); //友元函数
};
友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。
class A
{
friend class B; //友元类
public:
void Display();
private:
int m_nData;
};
友元函数
方式一:全局函数声明为友元函数
friend 返回值类型 函数名(参数表);
方式二:其他类的成员函数声明为友元函数(备注