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;
}
注意:
- 友元可以违反封装的原则,一般不推荐使用
- 某些运算符的重载必须用到友元的功能,这才是友元的真正用途
参考资料
- 飘零的落花 - 现代C++详解
- C++20高级编程