友元
当private的元素需要被类外元素访问的时候,就将其通过关键字friend设定为友元
一、全局函数
例子:
class phone{
private:
int num;
}
void getNum(phone *p){
cout<<p->num<<endl;//因为private的原因这样是获取不了的
}
设定友元全局函数
class phone{
friend void getNum(phone *p);//在类内认定友元全局函数
private:
int num;
}
void getNum(phone *p){
cout<<p->num<<endl;
}
二、类
设定友元类
class phone{
friend class computer;//在类内认定友元类
private:
int num;
}
class computer{
phone *p = new phone;
void visit(){
p->num=10; //可运行
}
};
三、成员函数
设定类的成员函数为友元
class phone{
friend void computer::visit();//在类内认定另一个类的成员函数为友元
private:
int num;
}
class computer{
phone *p = new phone;
void visit(){
p->num=10; //可运行
}
};