原因:
static成员变量没有初始化
分析:
static成员变量不属于对象的一部分,而是类的一部分,所以程序可以在还没有诞生任何对象的时候就处理此种成员变量,但是必须初始化它。
解决:
在应用程序中,类以外的任何位置初始化,比如 main 或 全局函数 或 任何函数之外
注意:
不要在构造函数中初始化,因为可能多次被调用,而变量初值只应该设定一次。
也不要在头文件中初始化,因为可能被载入许多地方而导致被执行多次。
设定初值时应带上类型,因为这是一个初值设定操作,而不是赋值操作
补充:
static成员变量设定初值时,不受权限的控制