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关键字可以用来定义静态变量、静态函数以及静态类,这些变量、函数和类都可以在程序的整个生命周期内存在,在任何函数或作用域中被访问,并且可以在程序的不同作用域中共享。