static修饰常量c++
时间: 2024-08-15 13:01:39 浏览: 49
在C++中,`static` 关键字用来指定某个变量或者方法的存储期、链接性和作用域。当我们用 `static` 修饰一个变量时,它具有以下特性:
1. 存储期:`static` 变量具有静态存储期,意味着它在程序启动时被创建,在程序结束时销毁。在函数内部定义的 `static` 变量只会在第一次调用函数时初始化,并且即使函数返回,`static` 变量的值也会保持不变,直到下次函数调用。
2. 链接性:如果 `static` 关键字用在类外的全局变量上,它具有文件作用域(内部链接性)。这表示它只能在定义它的源文件内被访问,其他源文件即使使用相同的变量名,也访问的是另一个独立的变量实例。
3. 作用域:`static` 变量在类内部定义时,表示该变量属于类所有,而不是类的某个对象的所有。这样的变量称为类变量或静态成员变量。静态成员变量不依赖于类的任何对象,即使没有创建类的对象,静态成员变量也可以被访问(通过类名直接访问)。
使用 `static` 修饰常量时,我们通常是在类中定义静态常量成员。这样的常量可以使用 `const` 关键字来保证其值不可变。静态常量成员可以在类外初始化,并且需要在类定义中使用 `static` 和 `const` 关键字。例如:
```cpp
class MyClass {
public:
static const int MyStaticConst = 10; // 静态常量成员
};
// 类外初始化
const int MyClass::MyStaticConst;
```
在类外初始化时,不需要再使用 `static` 关键字,只需使用 `const` 即可。这样定义的静态常量成员可以在没有创建类对象的情况下被访问和使用。
阅读全文