友元函数和友元类
友元函数:通过friend关键字,将不属于当前类的函数在当前类中加以声明,使其成为友元函数,同时该函数能够访问private属性的成员变量。
友元类:有有元函数,自然也能有友元类,通过friend关键字,将类A在类B中声明,那么类A会成为类B的友元类
注意:
1、友元函数可以访问这个类的私有成员,通常可以理解为友元函数是这个类的附庸,不被这个类承认是该类的成员函数的一份子,但是相对于完全不相干的函数,或多或少地享有一些内部特权,能找类中私有成员“聊聊天”
2、除了顶层函数可以被定义为友元函数之外,其它类的成员函数同样可以声明为本类的友元函数,
3、友元类中所有的成员函数都是该类的友元函数
4、友元函数声明之前一定要确保这个函数已经被声明定义,即确保这个函数是存在的
5、无论是类的成员函数还是顶层函数,它们都是可以同时被多个类声明为友元函数的,如此一来就可以访问多个类中的私有成员变量。
6、友元关系是单向的,友元关系不能传递,友元会破坏类的封装性,要慎重使用