c++友元全局函数、友元成员函数、友元类

1.友元函数

关键字:friend  
特性:一个类的友元函数,可以访问到类中私有成员
c++友元全局函数、友元成员函数、友元类
  • 推荐使用引用的方法取访问私有成员,更高效
  • 友元的定义写在public下和private下都是正确的,不过为了直观应写在开头
c++友元全局函数、友元成员函数、友元类

2.友元成员函数

将一个类的成员函数声明为另一个类的友元
c++友元全局函数、友元成员函数、友元类

3.友元类

  • 定义一个类为另一个类的友元类,在Circle类中定义一个Coordinate的对象,这个对象可以任意访问Coordinate的数据成员和成员函数
c++友元全局函数、友元成员函数、友元类

友元使用的注意事项:
  • 友元关系不可传递
  • 友元关系的单向性
  • 友元声明的形式和数量不受限制
友元只是封装的补充,不是一种很好的语法
如果前期类设计巧妙,应当避开使用友元,因为友元破坏了封装性,同时也是一种定向暴露信息的思想。