在(否则)优秀的书C++ 编码标准第 44 条,标题为“Prefer writing nonmember nonfriend functions”中,Sutter 和 Alexandrescu 建议只有真正需要访问类成员的函数本身就是该类的成员。仅使用成员函数可以编写的所有其他操作不应该是类的一部分。他们应该是非会员和非朋友。论据是:
- 它促进了封装,因为需要访问类内部的代码更少。
- 它使编写函数模板更容易,因为您不必每次都猜测某个函数是否是成员。
- 它使类保持较小,从而使其更易于测试和维护。
虽然我看到了这些参数的价值,但我看到了一个巨大的缺点:我的 IDE 无法帮助我找到这些函数!每当我有某种对象时,我想看看它上面有哪些可用的操作,我不能再只输入“ pMysteriousObject->
”来获取成员函数的列表。
保持简洁的设计最终是为了让您的编程生活更轻松。但这实际上会使我的工作更加困难。
所以我想知道这是否真的值得麻烦。你怎么处理?