void test(Base& x)
{
cout << a << endl;
} //友元不但可以访问共有属性,也可以访问类中的保护属性和私有属性
class Base
{
friend void test();//友元
//友元可以作为全局函数,或者类
public:
Base(int a = 10)
{
this->a = a;
}
private:
int a;
};
特性
可以访问类的保护和私有成员,但不属于类本身
不能用const修饰,友元函数是全局函数,没有this指针
友元类:所有函数都可以是另一个类的友元函数,且都可以访问另一个类中的保护和私有成员。
class Another
{
Base p;
public:
void test()
{
cout << p.a << endl;
}
}
class Base
{
friend class Another;//友元
//友元可以作为全局函数,或者类
public:
Base(int a = 10)
{
this->a = a;
}
private:
int a;
};