c++ 类中的static
时间: 2024-10-11 20:00:41 浏览: 27
在C++中,`static`是一个关键字,它可以应用于成员函数、静态数据成员、局部静态变量等多种情况。其主要作用包括:
1. **静态成员函数(Static Member Function)**:这类函数属于类本身,不是某个特定对象的属性。可以直接通过类名调用,不需要创建对象实例。静态成员函数也没有`this`指针,因为它们不是类的实例。
示例:
```cpp
class MyClass {
static void myStaticFunction() {
// 成员函数体
}
};
```
2. **静态数据成员(Static Data Members)**:它们属于类共享,所有对象都有相同的值,每个对象不会有自己的副本。静态数据成员一般初始化为默认值,也可以在类外初始化。
示例:
```cpp
class MyClass {
static int counter;
};
static int MyClass::counter = 0; // 初始化全局静态变量
```
3. **局部静态变量(Local Static Variables)**:这些变量只存在该函数的作用域内,对每次函数调用都是独立的。如果在函数外部声明,则它们类似于全局静态变量。
4. **静态常量(Const Static Members)**:常量静态成员在内存中只有一个拷贝,适用于表示类的全局状态。
静态成员的主要特点是生命周期长于对象,并且不能直接访问非静态成员,除非通过对象的指针或引用间接访问。
阅读全文