友元

友元概念

在理解友元的时候可以不认为是朋友,而是理解为“上级,主人”,因为friend后面跟的函数或者类都是可以访问自己这个类的私有成员的。

友元的三种实现

1.全局函数做友元

2.类做友元

3.成员函数做友元

全集函数做友元

友元_第1张图片

现在还不能实现全局函数访问类的私有成员!

加一个friend语句:

友元_第2张图片

类做友元

friend  class 类名

例如:friend class C

友元_第3张图片

友元类的注意事项

(1) 友元关系不能被继承
(2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。
(3) 友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明。

友元函数的定义和声明

 friend 类型 函数名 (参数)
 例如: friend int addFive(Distance)
 

友元_第4张图片

友元_第5张图片

友元成员函数

类A的成员函数是类B的友元函数,该成员函数能够访问类B的所有成员 

友元_第6张图片

你可能感兴趣的:(C++,c++)