友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。也就是说,通过友元,一个普通函数或者类的成员函数可以访问到封装于某一类中的数据,这相当于给类的封装开了一个小孔,通过它,可以看到类内部的一些属性。
从这个角度来讲,友元是对数据隐蔽和封装的挑战,但是考虑到数据共享的必要性,为了提高程序的效率,很多情况下这种小的破坏也是必要的,关键是需要在封装性和效率之间找到一个好的平衡点。
如果友元是一般函数或类的成员函数,则称为友元函数。友元函数是拥有成员函数一切权利的非成员函数,也就是说,友元函数不是类的成员函数,但可以像成员函数一样直接访问类的私有成员(包括类的私有数据成员和私有成员函数)。
如果友元是一个类,则称为友元类,友元类的所有成员函数都为友元函数。
阅读(1327) | 评论(0) | 转发(0) |