静态数据变量分配空间跟初始化不一样,分配空间是指在程序运行开始时进行分配,并默认一个数据在内存空间中,如果以后没初始化,则这个数据相当于初始化,程序结束是释放,而初始化则是在你需要的时候进行初始化,当然你初始化的话内存空间中有一个数据.定义和声明不一样,函数声明则是声明有这么一个函数,而定义则相当于给这个函数进行了个实体,假设一个人名叫王三,那么王三这个名就是这个人的声明,是一个抽象的,不是具体的某个事物,只是代表有一个叫王三得人,具体王三长什么样子,高矮,胖瘦,好坏,丑俊等都不知道,什么是定义呢?则是王三这个人是定义,是一个实实在在的人,而不是一个抽象的名字,可以知道这个王三的高矮,胖瘦,好坏,丑俊等.
定义格式:
class 类名
{
…
static 类型名 数据成员名; //说明这是类的所有对象共享的成员,不属于任何一个对象私有,因此,所有对象均不存储该数据。
…
};
初始化格式:
类型名 类名::数据成员名[=初值]; //不加 static! 在静态存储区分配空间,只能定义一次。不设初值时,默认为0
使用:
静态数据成员是在静态存储区分配空间,具有静态生命期,即存在于程序运行期间,直到程序运行结束,与对象的生、死无关。只能在类外定义。
推荐这样的调用形式 : 类名::静态数据成员
主函数调用之前完成初始化
程序结束释放
你可以写一段程序,设置断点调试运行