条款23:宁以non-member、non-friend替换member函数

来源:互联网 发布:python和node.js 编辑:程序博客网 时间:2024/05/21 06:11

结论1:宁可以non-member non-friend函数替换member函数。这样做可以增加封装性、包裹弹性和机能扩充性。

对象内的数据,越少代码可以看到,就越能自由地改变。如果要在一个member函数和一个non-member non-friend函数之间做抉择,而且两者提供相同机能,那么导致较大封装性的是non-member non-friend函数,因为它并不增加能够访问class内之private成分的函数数量。

包裹弹性指non-member non-friend函数可以对class的成员函数任意打包实现不同的功能。

机能扩充性指class定义式对客户而言是不能扩展的,但non-member non-friend函数却可以放在多个头文件内但隶属于同一个命名空间,因此可以轻松扩展。

0 0