在C++中,static函数有两种用法:
- 在类内:如果将成员函数声明为static,则表示该函数不属于任何对象实例,可以直接通过类名来调用,而不需要创建对象实例。这种静态成员函数可以访问类的静态成员变量,但不能访问非静态成员变量。
class MyClass { public: static void staticFunc() { // do something } }; MyClass::staticFunc(); // 调用静态成员函数
- 在文件内:如果将函数声明为static,则表示该函数的作用域仅限于当前文件,其他文件无法访问该函数。这种静态函数避免了与其他文件中的同名函数冲突的问题。
static void staticFunc() { // do something }
总结来说,static函数的作用是限制其作用域,使其只能在类内或当前文件内访问,从而提供了一种封装和模块化的方式。