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  类名;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 7.1 友元函数 C++只有本类中的函数可以访问本类的 private 成员。 但一种情况例外,那就是友元(fri...
    飞扬code阅读 389评论 0 5
  • 在c++中,通过关键字friend声明为友元。友元可以范围与其有好友关系的类中私有成员。友元包括友元函数和友元类。...
    杀破魂阅读 654评论 0 0
  • friend类: 如果class A想让class B访问它的成员,只需要在class A中将class B声明称...
    teanee阅读 468评论 0 0
  • 友元函数 c++ 中私有成员只能在类的成员函数内部被使用,如果要在别处使用私有内部成员则需要通过公有的函数来访问。...
    暴君_a722阅读 227评论 0 1
  • 有钱没钱, 回家过年! 家,是心灵的港湾, 家,是灵魂的归处。 家,是每个人心中最甜蜜的牵挂, 家,是世间最心安的...
    江湖人称王大大阅读 463评论 0 0