A static variable in a class method are shared between all instances of that class and not per class instance.
#include <stdio.h> class Foo { public: int foo() { static int i = 0; i++; return i; } }; int main() { Foo a, b; printf( "a: %d\n", a.foo() ); printf( "b: %d\n", b.foo() ); }
a: 1 b: 2