私有/公共静态成员函数
Private/public static member function
>我之前读到过类的静态成员函数类似于全局函数。但这应该取决于静态成员函数是否是公共/私有的,对吗?
例如:
class A
{
private:
static void aFunc();
};
int main()
{
A::aFunc();
}
在这种情况下,我将无法调用内部的静态成员函数main()
正确吗?如果我把它公开,我可以调用它,就像全局函数一样?
是的,它确实取决于访问修饰符。 如果函数是公共的,那么它有点类似于全局函数,但与全局函数不同,它可以访问类成员,并且必须使用类作用域(在您的示例中以 A::
为前缀)进行调用,仅举几个差异。
顺便说一句,当你在main()中调用它时,你应该只有
A::aFunc()
没有必要把void
插在那里。
是的,静态成员函数类似于非成员函数,因为您不需要为关联类类型的对象调用它,但它遵循通常的类成员访问规则,如非静态成员函数。
在这种情况下,您建议A::aFunc
无法从main
访问是正确的。但是,您的调用语法不正确。您不需要包含返回类型:
A::aFunc();
相关文章:
- 如何在C++中使用非静态成员函数作为回调函数
- 静态成员函数使用相同的名称时出现模板类型名称错误
- 在 nullptr 上调用无状态类的非静态成员函数是否合法?
- 为什么传递非静态成员函数会导致编译错误?
- 处理类内的回调时,必须调用对非静态成员函数的引用
- 非静态成员函数的 decltype 格式不正确吗?
- std::异步与非静态成员函数
- C++无效使用非静态成员函数?
- 未使用的C++未优化的静态成员函数/变量
- C++:如何返回指向非静态成员函数的指针?
- 使用静态成员函数而不是普通函数是否有任何开销?
- 在 stream_descriptor::async_wait 中无效使用非静态成员函数
- 为什么我不能像这样在静态成员函数中调用静态成员变量?
- 无法在clang Linux中分配非静态成员函数,但我可以在Visual Studio Windows中分配
- 在类定义中推导内联静态成员函数的返回类型
- `enable_if()`以禁用模板化类的静态成员函数声明
- 错误:无效使用非静态成员函数"int test::hotplug_callback(libusb_contex
- 常量静态成员函数
- 使用 vector.sort() 的非静态成员函数无效使用
- 从静态成员函数访问私有非静态类变量 - C++