静态变量和成员变量的区别
时间: 2024-12-28 16:19:38 浏览: 20
### 静态变量与成员变量的区别
#### 定义范围
静态变量属于类本身而非特定的对象实例,因此在整个程序运行期间仅存在一份副本[^2]。相比之下,成员变量则隶属于具体的对象实例,每当创建一个新的对象时都会为其分配独立的一组成员变量存储空间。
#### 生命周期
由于静态变量归属于类级别,其生命周期贯穿整个应用程序执行过程;而成员变量的生命期依赖于所属对象的存在时间,当该对象被销毁后对应的成员变量也随之消失。
#### 存储位置
静态变量通常存放在全局数据区(对于C++而言),这使得它们可以在不同对象间共享同一份数据副本。相反,成员变量位于堆栈或自由存储区内,每创建一次新对象就会相应开辟一块新的区域来保存这些属性值。
#### 初始化方式
静态变量一般会在首次加载类的时候完成初始化操作,并且只能有一个初始赋值的机会。成员变量可在每次构造函数调用过程中分别给予初值设定,允许各不相同。
```cpp
class Example {
public:
static int staticVar; // 类级别的静态变量声明
int memberVar; // 实例级别的成员变量声明
Example() : memberVar(0) {} // 构造函数内可对成员变量进行初始化
};
int Example::staticVar = 100; // 外部定义并初始化静态变量
```
阅读全文