友元
对于私有权限的成员,我们无法在类外访问。但是我们依然可以通过友元的方式进行访问。
1.全局函数作为友元
在下面的全局函数中,我想要访问ppp类的私有权限的成员m_b,为此我必须在类内声明一下这个全局函数可以访问,即friend关键词那一行。
class ppp
{
friend void f2ppp(ppp &p);//主要代码行
public:
ppp()
{
m_a = "aa";
m_b = "bb";
}
public:
string m_a;
private:
string m_b;
};
void f2ppp(ppp &p)
{
cout << p.m_a << endl;
cout << p.m_b << endl;
}
int main()
{
ppp p;
f2ppp(p);
return 0;
}
2.类作为友元
与前面类似,假设作为友元的类为 qqq ,则只需在 ppp 类内声明 friend class qqq; 。
3.成员函数作为友元
成员函数的话,在作为友元声明的时候需要确定作用域。
friend ppp::visit();