本文内容取自于对狄泰学院 唐佐林老师 C++深度解析 课程的学习总结
成员变量的回顾
- 通过 对象名 能够访问 public 成员变量
- 每个对象的 成员变量 都是 专属的
- 成员变量 不能 在对象之间 共享
静态成员变量
在 C++ 中可以定义 静态成员变量
- 静态成员变量 属于整个类所有
- 静态成员变量的 生命期不依赖于任何对象
- 可以 通过类名直接访问 公有静态成员变量
- 所有对象共享类的静态成员变量
- 可以 通过对象名访问 公有静态成员变量
静态成员变量的特性
- 在定义时直接通过 static 关键字修饰
- 静态成员变量 需要在类外单独分配空间
- 静态成员变量在程序内部 位于全局数据区
语法规则:
Type ClassName::VarName = value;
编程实验
静态成员变量的使用
#include <stdio.h>
class Test
{
private:
static int cCount;
public:
Test()
{
cCount++;
}
~Test()
{
--cCount;
}
int getCount()
{
return cCount;
}
};
int Test::cCount = 0;
Test gTest;
int main()
{
Test t1;
Test t2;
printf("count = %d\n", gTest.getCount());
printf("count = %d\n", t1.getCount());
printf("count = %d\n", t2.getCount());
Test* pt = new Test();
printf("count = %d\n", pt->getCount());
delete pt;
printf("count = %d\n", gTest.getCount());
return 0;
}
运行结果
小结
类中可以通过 static 关键定义 静态成员变量
静态成员变量 隶属于类所有
每一个对象都可以访问静态成员变量
静态成员变量 在全局数据区分配空间
静态成员变量的 生命期为程序运行期