C ++中的私有与静态函数

时间:2011-07-27 09:34:45

标签: c++ class static scope private

在类中使用private(可能还有static)函数对我的类中使用的实用程序函数是否有任何好处,这些函数不需要使用全局{{1}访问实例的数据在我的static文件中实现类的函数?
第一个听起来比较干净,但第二个听起来更有意义,因为这些功能甚至不需要在.cpp文件中提及。

4 个答案:

答案 0 :(得分:12)

如果不需要,我不会将私有静态函数放到头文件中。他们只会污染头文件并添加更多工作。

但是当你在类中有模板方法/函数并希望在其中使用该辅助函数时,可能需要私有静态函数。

使用私有静态函数而不是全局静态函数的另一个原因是它们可以访问私有类成员(变量,函数)。

答案 1 :(得分:5)

如果给定的功能与您的class相关,那么您是对的。您应该在private static正文中class进行namespace

[注意:如果这些实用程序函数完全不相关,那么您可以考虑将它们放在{{1}}或另一个Util类中,并将其保留在文件范围内。]

答案 2 :(得分:2)

只需将它们设为文件静态函数即可。如果他们与班级没有任何关系,请不要把它们放在那里。

答案 3 :(得分:0)

如果私有函数不修改类成员,则它与全局静态没有任何优势。在课堂内外都没有区别