如果类函数成员不依赖于类的任何成员,那么为什么类函数成员应该是类的一部分?
发布于 2011-01-25 03:07:47
不是的。事实上,you should prefer free-functions over member functions。只有真正需要对成员进行操作的函数才应该是成员函数,the rest should use them to provide functionality。
发布于 2011-01-25 03:15:42
假设你的意思是“不依赖于任何非公共成员”,Scott Meyer曾经answered a definite 过这个问题。
然而,他只专注于封装:通过使这些函数成为非成员来改进封装。
其他注意事项可能包括,例如,如果运算符被定义为非成员,则不能在临时运算符上调用operator<<。(您为什么要这样做呢?例如,从组成部分构建一个字符串参数,iostream样式。)
并且考虑因素可以简单地包括用法符号有多自然和清晰。带有嵌套调用的符号(对于非成员)可能会相当烦人和不明确。这就是为什么我们将->作为*取消引用+成员选择的语法糖。
因此,如果您只关注封装,那么就像Scott Meyer建议的那样,将这些成员函数移出类。否则,在考虑到可用性和符号清晰度等方面的情况下,做出工程决策。无论如何,不用担心:它可能并不是非常重要。:-)
干杯&哈。
发布于 2011-01-25 03:03:58
如果它与类的含义相关,你应该把它放在一起,即使它不使用任何类的成员。
原因很简单,对于开发人员来说,对于未来的开发人员来说,知道去哪里看。
https://stackoverflow.com/questions/4785928
复制相似问题