友元有三种:友元类,友元函数,友元成员函数,下面先介绍友元函数。
1、友元函数的创建: 加上friend关键字,注意参数的数量。注意,该原型的声明以为着两点:
(1)虽然friend operator * (...)函数中声明的,但它不是成员函数,因此不能用使用成员操作符来调用;
(2)虽然友元函数不是成员函数,但它的访问权限跟成员函数的相同。
(3)友元函数的声明放在公有段和私有段都一样。
2、友元函数的实现:
实际上,可以通过下面的修改将友元函数写成非成员函数(即不用再类定义里声明):
3、友元函数与成员函数的区别:
(1)成员函数有this指针,而友元函数没有this指针;
(2)友元函数是不能被继承的,就像父亲的朋友未必是儿子的朋友。