【发布时间】:2011-10-14 02:31:30
【问题描述】:
在一个类中使用private(也可能是static)函数对于我的类中使用的不需要访问实例数据的实用函数比在我的@987654325 中使用全局static 函数有什么好处吗? @实现类的文件?
第一个对我来说听起来更干净,但第二个确实更有意义,因为这些函数甚至不需要在 .h 文件中提及。
【问题讨论】:
标签: c++ class static scope private
在一个类中使用private(也可能是static)函数对于我的类中使用的不需要访问实例数据的实用函数比在我的@987654325 中使用全局static 函数有什么好处吗? @实现类的文件?
第一个对我来说听起来更干净,但第二个确实更有意义,因为这些函数甚至不需要在 .h 文件中提及。
【问题讨论】:
标签: c++ class static scope private
如果私有函数不修改类成员,它与全局静态相比没有任何优势。在课堂内外都没有区别
【讨论】:
如果不需要,我不会将私有静态函数放到头文件中。他们只会污染头文件并添加更多工作。
但当您在类中有模板方法/函数并希望在其中使用该辅助函数时,可能需要私有静态函数。
使用私有静态函数而不是全局静态函数的另一个原因是它们可以访问私有类成员(变量、函数)。
【讨论】:
只需将它们设为文件静态函数即可。如果它们与课程没有任何关系,请不要将它们放在那里。
【讨论】:
如果给定函数与您的class 相关,那么您是对的。您应该在您的class 正文中添加private static。
[注意:如果这些实用程序函数根本不相关,那么您可以考虑将它们包含在 namespace 或另一个 Util 类中,并将其保留在文件范围内。]
【讨论】: