c++当中的私有成员太过私有了,除了自己能够对其操作,其他对象或者方法都无法对私有成员进行操作。这样一来确实保证了成员的安全,但这是不合常理的,一个人不能完全的利己主义,有好东西也是需要分享的。这时候友元就来了。
和c语言学习当中的 exturn 一样,都是扩大数据的作用范围,c语言中使用 exturn 可以让其他文件访问当前文件数据,友元也一样嘛。允许类当中的私有成员被自己的友元函数访问。
测试代码
#include <iostream>
using namespace std;
class Test
{
public:
Test(int Data = 0):data(Data){};
// 声明友元函数
friend void show(Test &t);
private:
int data;
};
void show(Test &t)
{
// 通过对象访问私有成员,而不是通过方法
cout<<t.data<<endl;
}
int main(void)
{
Test t;
show(t);
return 0;
}