静态变量
静态变量不同于普通的局部变量,静态变量创立的时候系统会为其开辟专门的内存空间,当普通局部变量超出作用域的时候就会被系统自动清除,而静态变量不会,会继续保留下来知道主程序结束才会被删除。
void update_count()
{
static int count = 0;
count++;
}
静态类
class Dog
{
};
int mian()
{
if (true)
{
static Dog dog;//创建静态类
}
}
静态类数据成员
在类中放置一个数据类型,你可以创建数个该类,但是这数个类共享一个静态变量
比如:在下面代码中 creature_count被做为静态变量,无论你创建多少个Creature类,他们都只有一个 creature_count共用,这也意味这所有的Creature类都能修改这个静态函数,这个静态变量必须在类外初始化,因为静态变量不依靠创建类来初始化。
class Creature
{
public:
static int creature_count;
Creature()
{
creature_count++;
}
};
int Creature::creature_count = 0;//在变量外初始化,必须在外部进行静态初始化
即使你不需要创建静态实例你也可以在程序外访问
静态成员函数
在类中的静态函数,你可以调用该函数即便程序中没有这个创建这个对象。
class Announcer
{
static void announce() { cout << "hello!"; };
};