私有/公共静态成员函数

时间:2016-03-15 23:45:32

标签: c++ static member

我之前正在阅读类的静态成员函数类似于全局函数。但这应该取决于静态成员函数是公共/私有吗?

例如:

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

int main()
{
  A::aFunc();
}

在这种情况下,我不能能够在main()内调用静态成员函数吗?如果我改为将其公之于众,我可以称之为全局函数吗?

2 个答案:

答案 0 :(得分:0)

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

BTW,当你在main()中调用它时,你应该只有

A::aFunc()

无需坚持void

答案 1 :(得分:0)

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

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

A::aFunc();