全局函数做友元
class Person {
friend void func(Person *p); // 使得函数可以访问私有成员
public:
Person(){
a = 1;
b = 2;
}
int a;
private:
int b;
};
void func(Person *p){}
类做友元
class Person {
friend class MyFriend; // 使得其他类可以访问私有成员
public:
Person(){
a = 1;
b = 2;
}
int a;
private:
int b;
};
class MyFriend {
public:
p = new Person;
p.b;
};
成员函数做友元
class Person {
friend void MyFriend::visit(); // 使得其他类的成员函数可以访问私有成员
public:
Person(){
a = 1;
b = 2;
}
int a;
private:
int b;
};
class MyFriend {
public:
void visit(){};
}