Since class A
is a non-template class and A::foo()
is a non-template function. There will be only one copy of static int i
inside the program.
Any instance of A
object will affect the same i
and lifetime of i
will remain through out the program. To add an example:
A o1, o2, o3;
o1.foo(); // i = 1
o2.foo(); // i = 2
o3.foo(); // i = 3
o1.foo(); // i = 4