您的位置:首页 > 其它

第八章, 友元类

2013-08-10 15:45 148 查看

1,定义

友元类:一个类将另一个类声明为友元类后,前者所有的成员数据对后者来说都是公有的。

需要指出的是:友元关系不能传递,也不能继承。将类1声明为类2的友元并不能使类2成为类1的友元。就好比类1将自己的秘密告诉了类2,

并不代表类2也想将自己的秘密告诉类1.

友元打破了封装的特性。

2,声明

要将类声明为友元,可使用C++的关键字friend.

看下面的例子:

class People;
class Dog
{
int age1;
friend People;
public:
void setAge(int aAge)
{
age1 = aAge;
};
};

class People
{
int age;

public:
void setAge(int aAge)
{
age = aAge;
};
void printf(Dog &d);
};

void People::printf(Dog &d)
{
std::cout<<"people.age="<<age;
std::cout<<"\ndog.age="<<d.age1;
};

int main(int argc, const char * argv[])
{

People p;
p.setAge(11);
Dog d;
d.setAge(22);
p.printf(d);
return 0;
}
people是dog的友元类,在people的一个成员函数printf中可以直接访问dog的私有成员变量age.值就是友元的用处

他不但可以访问受保护的而且可以访问私有的成员变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: