跳到主要内容

04 - 友元类与友元函数

本文介绍了C++中的友元类和友元函数。

友元

友元(friend)就是可以让另一个类或函数访问本类私有成员和方法的简单写法。

class Test
{
// 让Test2能够访问Test的私有成员
friend class Test2;
// 让outPut2函数能够访问Test的私有成员
friend void outPut2(const Test& test);

private:
std::string name;
unsigned old;
};

class Test2
{
public:
void outPut(const Test& test)
{
std::cout << test.name << " " << test.old << std::endl;
}
};

void outPut2(const Test& test)
{
std::cout << test.name << " " << test.old << std::endl;
}

注意:

  1. 友元可以违反封装的原则,一般不推荐使用
  2. 某些运算符的重载必须用到友元的功能,这才是友元的真正用途

参考资料