c – 类方法中的静态变量

有人可以解释如何静态方法变量工作在C …如果我有以下类:

class A {
   void foo() {
      static int i;
      i++;
   }
}

如果我声明多个实例A,在一个实例上调用foo()在所有实例上增加静态变量i?还是只有一个被打电话?

我假设每个实例都有自己的i的副本,但是通过一些代码,我似乎指出了其他。

因为类A是非模板类,A :: foo()是非模板函数。程序中只有一个static int i的副本。

任何实例的A对象将影响相同的i和生命的i将保持通过程序。添加示例:

A o1, o2, o3;
o1.foo(); // i = 1
o2.foo(); // i = 2
o3.foo(); // i = 3
o1.foo(); // i = 4
http://stackoverflow.com/questions/6223355/static-variables-in-class-methods

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – 类方法中的静态变量