static variables in class methods

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