类成员函数是static和private

时间:2013-04-06 15:52:21

标签: c++

有一些类成员函数说f()是私有还是静态是否有意义? e.g。

class MyClass
{
 ...
private:

static int foo();
}

感谢。

非常感谢您的所有评论!好,我知道了。是的,确实最初我开始使用 我班级的静态函数,因为它们与我班级的对象无关 - 正在做一些其他的操作。现在我也意识到他们不需要公开。 所以,我想我会这样离开他们。 当我删除静态关键字时,我开始出现一些错误(显然是因为它在整个课程中的使用方式,所以我现在懒得修复它们,只会让它变成私有并保持静态:)。

5 个答案:

答案 0 :(得分:5)

是。例如:用于初始化或其他目的的私有静态成员函数。

有关详情,请参阅此帖子:What is the use of private static member functions?

答案 1 :(得分:3)

当然,有时候。例如,同一类的公共静态方法使用的实用程序函数。

答案 2 :(得分:3)

是的,拥有静态私有成员函数是有道理的。例如,它可能是仅由同一类的其他成员使用的无状态效用函数。

不,你的班级没有意义。由于MyClass没有其他成员,因此任何实体都无法看到您的MyClass::foo

答案 3 :(得分:0)

绝对!想象一个纯静态的类,如统计函数类。辅助函数可以是私有的,也可以是静态的。

答案 4 :(得分:0)

当然。您可以将它用于您班级的内部目的,即私人职能,即

class A{
    public:
        static int i_;
private:
    void privatef(){hiden_i_++;}
    static int hiden_i_;
};