在C++中,static关键字有多个用法:
在函数内部使用static修饰变量时,表示该变量在函数调用间保持持久性,即其值在函数调用之间保持不变。该变量在首次声明时被初始化,然后在函数调用之间保持其值。在多个函数调用间共享变量时,可以使用该特性。
在函数外部使用static修饰全局变量时,表示该变量的作用域仅限于当前文件。其他文件无法访问该变量,即使它们声明了相同名称的全局变量。这样可以避免全局变量命名冲突。
在类中使用static修饰成员变量时,表示该变量被类的所有对象所共享,而不是每个对象拥有自己的副本。这样的变量也称为类变量或静态成员变量。
在类中使用static修饰成员函数时,表示该函数不依赖于任何特定的对象实例,可以直接通过类名来调用。这样的函数也称为类函数或静态成员函数。静态成员函数不能访问非静态成员变量或非静态成员函数,因为它们不依赖于对象状态。
总的来说,static关键字可以用于控制变量的生命周期和作用域,以及定义类共享的成员变量和成员函数。