友元关系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了友元关系相关的知识,希望对你有一定的参考价值。

在封装中C++类数据成员大多情况是private属性;可是假设接口採用多參数实现肯定影响程序效率。然而这时候假设外界须要频繁訪问这些私有成员,就不得不须要一个既安全又理想的后门”——友元关系;

C++中提供三种友元关系的实现方式,友元函数、友元成员函数、友元类。

友元函数:既将一个普通的函数在一个类中说明为一个friend属性。其定义(大多数会訪问该类的成员)应在类后;

友元成员函数:既然是成员函数,那么肯定这个函数属于某个类,对了就是由于这个函数是另外一个类的成员函数。有时候由于我们想用一个类通过一个接口去訪问另外一个类的信息,然而这个信息仅仅能是被它授权的类才干訪问;那么也须要用friend去实现。这个概念仅仅是在声明的时候稍有变化。

友元类:友元类声明会将整个类说明成为还有一个类的友元关系;和之前两种的差别是集体和个人的差别。友元类的全部成员函数都能够是还有一个类的友元函数;

值得注意的是友元关系是单向的,有点像我们恋爱中出现的单相思 O(∩_∩)O,单向关系就是说假设A被说明成B的友元关系,那么仅仅能说AB的友元。并不代表BA的友元;其次在多数情况下友元关系的函数都会訪问它被说明中类的成员,这时候应该将函数定义在类的后面;

以上是关于友元关系的主要内容,如果未能解决你的问题,请参考以下文章

5 友元类

友元的友元类

第28课 - 友元的尴尬能力

C++--友元函数与函数重载

友元超英雄(二十二)

友元函数都有哪些特点?