一、友元函数:
①普通函数作为类的友元:
#include <iostream>
using namespace std;
class A
{
private:
int i;
friend void f() ;
};
void f()
{
A jack;
jack.i=20;
cout<<jack.i<<endl;
}
int main ()
{
f();
return 0;
}
②一个类的成员函数作为这个类的友元:
#include <iostream>
using namespace std;
class A
{
private:
int i;
public:
void f();
friend void f();
};
void A::f()
{
i = 22;
cout<<i<<endl;
}
int main ()
{
A jack;
jack.f();
}
③一个类的成员函数作为另一个类的友元的情况:
#include <iostream>
using namespace std;
class B
{
public:
void f();
};
class A
{
private:
int i;
friend void B ::f();
};
void B::f()
{
A jack;
jack.i = 20;
cout<<jack.i<<endl;
}
int main ()
{
B mike;
mike.f();
}
二、友元类:
#include <iostream>
using namespace std;
class B
{
public:
void f();
};
class A
{
private :
int i;
friend class B; //B是A的友元类
};
void B::f() //这个时候B中的成员函数就可以访问A中的私有成员了
{
A mike;
mike.i = 55;
cout<<mike.i<<endl;
}
int main ()
{
B jack;
jack.f();
}
浙公网安备 33010602011771号