一、静态成员的特点
- 用
static
定义的成员变量是静态成员; - 静态成员是与类绑定的,而不是与对象绑定的,所以静态成员不需要实例化就可以通过类名访问;
- 因为静态成员是与类绑定的,所以静态成员只开辟一个内存空间(普通成员,有多少个对象,就开辟多少个内存空间);
- 因为静态成员只开辟一个内存空间,所以该类的所有对象共享静态成员的内存空间;
二、静态成员的使用
2.1、声明静态成员
class Test {
public:
Test();
~Test();
//声明一个本类的静态指针
static Test *test;
}
2.2、定义并初始化静态成员(类外)
#include "Test.h"
//定义并初始化静态成员
Test* Test::test = NULL;
Test::Test()
{
}
Test::~Test()
{
}
2.3、实例化(静态指针成员只能初始化一次)
Test::Create()
{
if(test == NULL)
test = new Test;
}
Test::Release()
{
if(test != NULL)
{
delete test;
test = NULL;
}
}
//main.cpp
#include <Test.h>
int main() //保证只初始化一次
{
Test::Create();
....
Test::Release();
}
2.4、调用
在类中定义本类的静态成员指针,在任何想要访问这个类的地方,只需要包含该类的头文件,就可以通过:类名::静态成员指针->成员变量/方法
来访问。