C++ 友元

文章目录

  • 1 为什么使用友元(用途)
  • 2 友元的两种使用方式(用法)
    • 2.1 友元函数
      • 2.1.1 使用全局函数作为友元函数
      • 2.1.2 使用类成员函数作为友元函数
    • 2.2 友元类
  • 3 注意事项

1 为什么使用友元(用途)

作为 C++ 面向对象特性之一的封装性,优点是安全,缺点是在某些特殊场合存在不方便之处。特殊场合:某个类需要实现某种特殊功能,自身无法实现,需要借助“外力”才能实现,但是由于封装性的存在,“外力”无法直接访问这个类的内部数据与方法,C++ 友元特性可以赋予“外力”直接访问这个类的内部数据与方法的能力。“外力”:非成员函数、其它类对象。

2 友元的两种使用方式(用法)

一个类把友元函数和友元类作为自己的朋友,可以实现特殊功能。

2.1 友元函数

2.1.1 使用全局函数作为友元函数

示例:friend/globalFunctions

2.1.2 使用类成员函数作为友元函数

示例:friend/memberFunctions

2.2 友元类

面对复杂功能,使用友元函数就不是很方便,因为需要设计很多友元函数才能完成复杂功能,很不方便。如果把类 A 作为类 B 的友元类,那么类 A 的所有成员函数(在类 A 的成员函数当中),就可以直接访问(使用)类 B 的私有成员,即,友元类可以直接访问对应类的所有成员。

示例:friend/class

3 注意事项

友元函数和友元类,使用 friend 关键字进行声明即可,与访问权限无关,所以,可以放在 public/protected/private 任意限制区域内。

你可能感兴趣的:(c++,开发语言)