私有/公共静态成员函数

Private/public static member function

本文关键字:静态成员 函数 私有      更新时间:2023-10-16

>我之前读到过类的静态成员函数类似于全局函数。但这应该取决于静态成员函数是否是公共/私有的,对吗?

例如:

class A
{
  private:
  static void aFunc();
};
int main()
{
  A::aFunc();
}

在这种情况下,我将无法调用内部的静态成员函数main()正确吗?如果我把它公开,我可以调用它,就像全局函数一样?

是的,它确实取决于访问修饰符。 如果函数是公共的,那么它有点类似于全局函数,但与全局函数不同,它可以访问类成员,并且必须使用类作用域(在您的示例中以 A:: 为前缀)进行调用,仅举几个差异。

顺便说一句,当你在main()中调用它时,你应该只有

A::aFunc()

没有必要把void插在那里。

是的,静态成员函数类似于非成员函数,因为您不需要为关联类类型的对象调用它,但它遵循通常的类成员访问规则,如非静态成员函数。

在这种情况下,您建议A::aFunc无法从main访问是正确的。但是,您的调用语法不正确。您不需要包含返回类型:

A::aFunc();