在学习C++时,关于友元类和友元函数这一小节,感觉比较难理解,这篇就来一起研究关于友元的相关知识吧~
我们将从以下几点深入剖析友元函数:
- 为什么要引入友元函数?
- 什么时候使用友元函数?
- 怎样使用友元函数?
- 友元函数的特性是什么?
- 友元函数的优缺点有哪些?
友元分为了友元函数和友元类两种形式,接下来就让我们一起学习他们的知识吧。
友元函数
1.引入友元函数的原因
类具有封装、继承、多态、信息隐藏的特性,只有类的成员函数才可以访问类的私有成员,非成员函数只能访问类的共有成员。而为了非成员函数访问类的成员,唯一的做法就是将成员定义为public,但这样的操作会破坏信息隐藏的特性。
所以我们引入了友元函数,在实现类之间数据共享时,减少系统开销,提高效率,让其他的类成员函数可以直接访问该类的私有变量。
2.使用友元函数的场景
- 进行运算符重载的某些场景需要使用友元(例如:<<)
- 两个类之间要共享数据的时候;
3.友元函数的使用
声明
在定义类的任何地方进行声明,声明时加关键字friend
不受类访问限定符的限制;
friend <返回类型> <函数名> (<参数列表>);
class Date
{
friend ostream& operator << (ostream& _cout, const Date& d<