友元函数
#include <iostream>
using namespace std;
class A{
private:
int i;
friend void FriendFun(A *, int);//说明语句位置没有关系
public:
void MemberFun(int);
};
void FriendFun(A *ptr, int x){//友元函数通过对象参数 访问私有带护具成员
ptr->i = x;
}
友元类
#include <iostream>
using namespace std;
class A{
friend class B;//B是A的友元(朋友)
public:
A(int x = 5){this->x = x;}//A(int x = 5):x(x){}
void Display(){cout << x << endl;}
private:
int x;
};
class B{
public:
//所以在B中可以访问A中的私有数据成员
void Set(int i){Aobject.x = i;}
void Display(){Aobject.Display();}
private:
A Aobject;//B中有个A,A是B的子属性
};
int main()
{
B t2;
t2.Display();
t2.Set(8);
t2.Display();
return 0;
}