2

让一些类成员函数说 f() 既私有又静态有意义吗?例如

class MyClass
{
 ...
private:

static int foo();
}

谢谢。

您好,感谢您的所有评论!好,我知道了。是的,确实最初我开始在我的班级中使用静态函数,因为它们与我班级的对象无关 - 正在执行一些其他操作。现在我也意识到他们不必公开。所以,我想我会像这样离开他们。当我删除 static 关键字时,我开始遇到一些错误(显然是由于它在整个班级中的使用方式,所以我现在懒得修复这些,只会将其设为私有并保留静态 :))。

4

5 回答 5

5

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

有关更多信息,请参阅此帖子:私有静态成员函数的用途是什么?

于 2013-04-06T15:54:31.983 回答
3

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

于 2013-04-06T15:53:39.290 回答
3

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

不,你的课没有意义。由于MyClass没有其他成员,因此没有实体可以看到您的MyClass::foo.

于 2013-04-06T15:54:06.997 回答
0

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

于 2013-04-06T15:56:05.790 回答
0

当然。你可以将它用于你的类的内部目的,在私有函数中,即

class A{
    public:
        static int i_;
private:
    void privatef(){hiden_i_++;}
    static int hiden_i_;
};
于 2013-04-06T15:57:10.013 回答