static及其应用:静态成员变量和静态成员函数
使用static成员的主要目的是,让被static修饰的东西,作用域和生命周期不受对象的限制
静态成员变量类似于全局变量,存放在全局区中。但是在使用静态成员变量的时候要先对其进行初始化。要在类的外部完成,不用加上 static 关键字。如果类的声明和实现分开的话,静态成员变量的初始化在实现文件中完成
如果用static修饰函数,那么该函数中不可调用类中的非静态成员函数。但是类中的非静态成员函数可以调用静态成员函数。这点也和在类外面定义的函数类似
static的应用一般在两个方面:单例模式,对象的监控
1.对象的监控:在程序运行过程中,监视某个对象的使用情况。创建了几次,删除了几次,最后有没有剩下。。。
2.单例模式
注意:使用static成员的时候要注意多线程安全的问题。避免同一块内存被多个线程调用,导致得不到想要的结果