C++ 友元

小项 备注
时间 2020 年 3 月 28 日
修改时间 2020 年 3 月 28 日
城市 北京市房山区
天气
心情 你猜

0. 友元前世

类的 私有成员 只能在 自己类的成员函数内部访问,如果想在别处访问此类的私有成员,只能通过此类提供的接口(也是一些成员函数,比如:Get()、Set() 等) 间接进行。

如果在这个 “ 类的成员函数外部 ” ,想访问到这个类的 私有成员。于是,就有了 友元(friend) 的语法。

这相当于是说:朋友是值得信任的,所以可以对他们公开一些自己的隐私。

下图展示了友元的分类。

友元分类

1. 友元全局函数

不是 某个类 的成员函数,是一个类外函数,但是可以访问类的 所有成员(成员函数、成员属性)

语法:

friend  返回值类型  函数名(参数表);

2. 友元成员函数

使类A的 成员函数 成为类B的友元函数(注意:在类B中声明,且 类A的这个 成员函数 不能是私有的),这样类A的该成员函数就可以访问类B的 所有成员(成员函数、成员属性)

语法:

friend  返回值类型  其他类的类名::成员函数名(参数表);

3. 友元类

类A是类B的友元类(注意:在类B中声明),则A就可以访问B的 所有成员(成员函数、成员属性)【注意:类A、类B 无继承关系】
语法:

friend  class  类名;

你可能感兴趣的:(C++ 友元)