马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
友元关系
我们讲了,设置了private和protected的类无法被其他的类给访问到,但有些类却不得不访问这些类的成员该怎么办呢,这时候要使用到friend class#include <iostream>
class Computer
{
public:
Computer();
void cout_num();
private:
int num;
friend class Ipad;
};
class Ipad:public Computer
{
public:
void cout_num( Computer *p );
};
Computer::Computer()
{
num = 11;
}
void Computer::cout_num()
{
std::cout << num;
}
void Ipad::cout_num( Computer *p )
{
std::cout <<"我从Ipad中输出p:" << p->num << std::endl;
p->num = 12;
}
int main()
{
Ipad myipad;
Computer mycomputer;
myipad.cout_num( &mycomputer );
mycomputer.cout_num();
return 0;
}
首先我们使用了friend class来使得Ipad可以访问到Computer内的private,然后使用myipad.cout_num( &mycomputer );
来输出并修改private中num,然后用Computer里面的cout_num方法输出num,结果是成功的,num数被修改成了12 |