友元函数和友元类
友元函数和不同函数的区别:
友元函数在类中声明,那么这个函数就能访问里面的所有成员变量。
友元函数想干嘛?
如果我自己定义了一个函数,函数的形参是一个对象,在函数体里面,通过这个对象我访问对象里的所有成员变量,这显然是不行的,因为private/protected不能被外部访问。那怎么办?通过友元函数!
那么怎么定义友元函数呢?
常规的定义一个函数(这个函数里面的形参是一个对象),然后把这个函数就是把一个函数放在对象所在的类里面,并且要在前面加个friend.
有点extern的味道
如果一个类A想访问类B的成员变量,那么:
在类B中声明友元函数时,必要要指明这个友元函数时类A中的。为什么呢?
显然,如果不指明他是类A空间里的话,那么在外部编写这个友元函数时候就不能访问成员变量,这是因为,类A并没有准确的将他做朋友啊~~~