C++中的static关键字是一个非常重要的关键字,它可以用来定义静态变量、静态函数以及静态类。
1. 静态变量
静态变量是一种在程序的整个生命周期内都存在的全局变量,可以在任何函数或作用域中被访问,即使是在函数外部定义的静态变量,在函数内部也可以被访问,而且可以在程序的不同作用域中共享,只要在变量前加上static关键字即可。
// 定义静态变量 static int a = 0; // 函数中使用静态变量 void func() { a++; printf("a = %d\n", a); }
2. 静态函数
静态函数是一种在程序的整个生命周期内都存在的函数,只能在定义该函数的文件中被调用,不能被其他文件中的函数调用,即使是在函数外部定义的静态函数,在函数内部也可以被调用,只要在函数前加上static关键字即可。
// 定义静态函数 static void func1() { printf("This is a static function.\n"); } // 调用静态函数 void func2() { func1(); }
3. 静态类
静态类是一种在程序的整个生命周期内都存在的类,只能在定义该类的文件中被调用,不能被其他文件中的类调用,即使是在类外部定义的静态类,在类内部也可以被调用,只要在类前加上static关键字即可。
// 定义静态类 static class A { public: int a; void func(); }; // 调用静态类 void func() { A a; a.a = 1; a.func(); }
static关键字可以用来定义静态变量、静态函数以及静态类,这些变量、函数和类都可以在程序的整个生命周期内存在,在任何函数或作用域中被访问,并且可以在程序的不同作用域中共享。