假设我有一个名为foo()的函数和一个类A.对于类A,它将使用foo()用于某种目的,但foo()不会使用类A的任何属性。
在这种情况下,我应该将foo()作为一个常用函数放在类之外,还是将它保存为A类的私有函数?
你有选择的推理规则吗?
答案 0 :(得分:0)
取决于foo方法的用途?如果任何其他类正在使用该方法,则在一般类中创建它,如utils或类似的东西。如果foo()仅用于A类,请在A类中将其设为私有。
答案 1 :(得分:0)
没有必要让它成为班级成员。只需将其定义为类定义中的函数即可。
这是一个很好的解释,非会员功能实际上是好事,可以使你的代码更好:http://www.ddj.com/cpp/184401197
这也是一个很好的参考:http://www.gotw.ca/gotw/084.htm
答案 2 :(得分:0)
如果A类一次调用foo(),我建议把它作为A的私有成员函数。 否则,如果foo()位于文件范围,它将是一个自由函数。 Free Function可能对全局名称空间构成威胁。它是一个自由函数,在.h文件中使用内部链接或在.c文件中使用外部链接定义,它可能在程序集成期间与另一个具有相同名称的函数定义冲突。
如果多次使用foo(),将foo()作为静态函数放入实用程序类/结构中将是一个好主意。