static静态成员变量不属于对象的一部分,而是类的一部分,所以程序可以在还没有诞生任何对象的时候就处理次种成员变量。但首先必须初始化它。
不要把static成员变量的初始化操作安排在类的构造函数中,疑问构造函数可能一再的被调用,而变量的初值却只应该设定一次。也不要把初始化操作安排在头文件中,因为它可能会被载入到很多地方,因此也就可能被执行很多次。应该在应用程序文件中,类以外的的任何位置设定初始值(因为设定static成员变量初值时,不受任何存取权限的束缚,但存取有此限制,如果希望在产生任何object之前就存取class的private static成员变量则必须设计一个static成员函数。并且static成员变量的类型也出现在初值设定的语句中,因为这是个初值设定操作而不是赋值操作)。例如在main之中,或全局函数中,或任何函数之外。