In fact, static members have the same properties as global variables but they enjoy class scope.
For that reason, and to avoid them to be declared several times, we can only include the prototype (its declaration) in the class declaration but not its definition (its initialization).
In order to initialize a static data-member we must include a formal definition outside the class, in the global scope, as in the previous example: