一个类可以声明一个普通函数或者另一个类的成员函数成为这个类的友元函数,也可以声明另一个类为这个类的友元类,因此友元就包括友元函数和友元类。而友元类的成员函数会自动成为这个类的友元函数。
友元的引入其实就是为了解决程序中的数据共享问题,而类的友元就解决了类与类之间,类与函数之间的数据共享。
类的友元函数的声明方式:friend类型说明符 函数名(形参);
类的友元类的声明方式:friendclass 类名;
注意:类的友元函数的声明在类中,实现在类外,实现时和普通的函数实现一样,此时虽然函数声明在类中,但是友元函数却不是类的成员函数。
类的友元类的一些特点:1不具有传递性,如果类B是类A的友元,类C是类B的友元,如果无声明,则类C与类A不具有友元关系;2单向性,如果类B是类A的友元,那么类B的成员函数可以访问类A的私有和保护数据成员,但是类A则不能访问类B的成员;3不具有继承性,如果类B是类A的友元,那么类B的派生类与类A没有友元关系。
以上就是我对友元的一些认识。