首页 > 代码库 > 友元关系

友元关系

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

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

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

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

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

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

友元关系