条款 -23 宁以 non-member、non-friend 替换 member 函数
Remember:
1-宁可拿 non-member 、 non-friend 函数替换 member 函数。
这样做可以增加封装性、包裹弹性(packaging flexibility)
p.s. non-member函数:
不是类的成员(member)函数。通过具体类实现调用
eg. (类 A)
……
void fun1(A& name1){
name1.a(); //调用 类的 a 成员函数
name1.b();
}
non-member 函数 或 friend 函数的封装性要比 member 函数好!此外,提供 non-member (或 friend) 函数可允许对 类 相关机能有较大的 包裹弹性( packaging flexibility ),而那最终导致较低的编译相依度,增加类的可延伸性。
其次,如条款-22 所说:成员变量应该是 private,因为如果它们不是,就有无限量的函数可以访问它们,也就毫无封装性而言。