1.友元函数
C++语法:在类中声明友元函数
class 类名 // 类声明部分
{
......
friend 友元函数的原型声明 ;
} ;
语法说明:
在类声明部分声明友元函数的原型,声明时使用“friend”关键字。声明语句可以放在大括号内的任意位置,该位置的访问权限与友元函数无关;
友元函数是类外的其它函数,不是类的成员;
友元函数可以在其函数体内访问该类对象的所有成员,不受权限约束。
2.友元类
class B
{
......
void fun1( ) { ...... }
void fun2( ) { ...... }
} ;
class A
{
......
friend void B :: fun1( ); // 声明类B的函数成员fun1为类A的友元函数
} ;
class A
{
......
friend class B; // 声明类B为类A的友元类
} ;
友元类
–友元关系是单向的。若类A声明类B是自己的友元,并不意味着自己同时成为对方的友元,除非对方声明自己是它的友元
–友元关系不能传递。假设类B是类A的友元,类C又是类B的友元,这并不意味着类A和C之间存在任何友元关系,除非它们自己单独声明