c++中static关键字的用途有哪些

avatar
作者
猴君
阅读量:1

在C++中,static关键字有以下几个用途:

  1. 静态成员变量:使用static关键字声明的成员变量被称为静态成员变量。静态成员变量属于类而不是对象,所有该类的对象共享同一个静态成员变量的值。静态成员变量可以在类的任何实例之间共享数据。静态成员变量在类外部进行初始化,也可以在类内部进行初始化。
class MyClass { public:     static int count; };  int MyClass::count = 0;  int main() {     MyClass obj1;     MyClass obj2;     obj1.count = 5;     obj2.count = 10;     std::cout << obj1.count << std::endl;  // 输出10     std::cout << obj2.count << std::endl;  // 输出10     return 0; } 
  1. 静态成员函数:使用static关键字声明的成员函数被称为静态成员函数。静态成员函数在类的对象上调用,而不是特定的实例。静态成员函数无法访问非静态成员变量,只能访问静态成员变量。
class MyClass { public:     static void print() {         std::cout << "Hello, World!" << std::endl;     } };  int main() {     MyClass::print();  // 输出Hello, World!     return 0; } 
  1. 静态局部变量:在函数内部使用static关键字声明的变量被称为静态局部变量。静态局部变量在函数首次调用时初始化,并且在函数调用结束后仍然保持其值,直到程序结束。静态局部变量的作用域仅限于声明它的函数。
void foo() {     static int count = 0;     count++;     std::cout << count << std::endl; }  int main() {     foo();  // 输出1     foo();  // 输出2     foo();  // 输出3     return 0; } 
  1. 静态关键字还可以用于修改函数和变量的可见性。在函数或变量前面添加static关键字,可以将它们的可见性限制在当前文件中,避免与其他文件中的同名函数或变量冲突。这种用法通常在头文件中的函数或变量前使用,以防止重定义错误。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!