一、static 成员变量
对于特定类型的全体对象而言,有时候可能需要访问一个全局的变量。比如说统计某种类型对象已创建的数量。
如果我们用全局变量会破坏数据的封装,一般的用户代码都可以修改这个全局变量,这时可以用类的静态成员来解决这个问题。
非static数据成员存在于类类型的每个对象中,static数据成员独立该类的任意对象存在,它是与类关联的对象,不与类对象关联。
(1)、static成员的定义
static成员需要在类定义体外进行初始化与定义
(2)、特殊的整型static const成员
整型static const成员可以在类定义体中初始化,该成员可以不在类体外进行定义
C++ Code
1
2
3
4
5
6
7
8
9
10
11
12
13
class Test
{
public:
Test(): a( 0) {}
enum {size1 = 100, size2 = 200};
private:
const int a; //只能在构造函数初始化列表中初始化
static int b; //在类的实现文件中定义并初始化
const static int c; //与 static const int c; 相同。
};
int Test::b = 0; //static成员变量不能在构造函数初始化列表中初始化