C++:static用法详解 c++ static const
C++中static是一个关键字,它有多种用法,下面详细介绍每种用法:
1. 静态变量
在函数中,使用static关键字可以定义一个静态局部变量,该变量只被初始化一次,不会在函数调用结束时销毁,而是一直存在于内存中,直到程序结束。例如:
void func()
{
static int count = 0;
count++;
cout << "count value: " << count << endl;
}
2. 静态函数
在函数定义时使用static关键字,可以将函数声明为静态函数,静态函数不能被其他文件中的代码访问,只能被当前文件中的其他函数调用。例如:
static void printMessage(const char* message)
{
cout << message << endl;
}
3. 静态成员变量和静态成员函数
在类中使用static关键字,可以定义静态成员变量和静态成员函数。
静态成员变量是指在类中定义的一个静态成员,所有该类的对象共用同一个静态成员变量。静态成员变量必须在类外定义,并在类名称前加上类作用域运算符::和关键字 static,例如:
class MyClass {
public:
static int count;
};
int MyClass::count = 0;
静态成员函数是指在类中定义的一个静态函数,它不属于任何一个对象,而是属于整个类,即可以被该类的所有对象所共享。静态成员函数只能访问静态成员变量和其他静态成员函数,不能访问非静态成员变量和非静态成员函数。静态成员函数使用关键字static定义,例如:
class MyClass {
public:
static void printCount() {
cout << "Count: " << count << endl;
}
private:
static int count;
};
int MyClass::count = 0;
在上面的例子中,printCount是一个静态成员函数,它可以访问count这个静态成员变量。
总的来说,static关键字可以起到限制变量、函数作用范围和定义共享数据等作用。在实际开发中,需要根据实际情况合理使用static关键字。