我之前正在阅读类的静态成员函数类似于全局函数。但这应该取决于静态成员函数是公共/私有吗?
例如:
class A
{
private:
static void aFunc();
};
int main()
{
A::aFunc();
}
在这种情况下,我不能能够在main()
内调用静态成员函数吗?如果我改为将其公之于众,我可以称之为全局函数吗?
答案 0 :(得分:0)
是的,它确实取决于访问修饰符。如果函数是公共的,那么它有点类似于全局函数,但与全局函数不同,它可以访问类成员并且必须使用类作用域(在您的示例中以A::
为前缀)调用,以提到一些差异。
BTW,当你在main()中调用它时,你应该只有
A::aFunc()
无需坚持void
。
答案 1 :(得分:0)
是的,静态成员函数类似于非成员函数,因为您不需要为关联类类型的对象调用它,但它遵循通常的类成员访问规则,如非静态成员函数
在这种情况下,建议您A::aFunc
无法访问main
,这是正确的。但是,您的调用语法不正确。您不需要包含返回类型:
A::aFunc();