C 中成员函数内的静态变量
在 C 中,成员函数可以包含静态变量。类中的静态成员变量在该类的所有实例之间共享,无论调用该函数的对象如何。
让我们考虑以下类:
class A { public: void foo() { static int i; i++; } };
与假设 A 的每个实例都有自己的 i 副本,值得注意的是整个程序中只有一个 i 实例。这是因为 static int i 是在类定义内部和任何特定函数外部声明的,使其成为类本身的成员,而不是 foo 函数的局部变量。
因此,A 对象的任何实例会影响同一个共享i,并且它的生命周期将持续到程序的执行过程中。例如:
A o1, o2, o3; o1.foo(); // i = 1 o2.foo(); // i = 2 o3.foo(); // i = 3 o1.foo(); // i = 4
在这种情况下,A 的所有实例都访问并修改同一个静态变量 i。在任何实例上调用 foo 都会增加整个类的共享 i。
以上是静态变量在 C 成员函数中的行为如何?的详细内容。更多信息请关注PHP中文网其他相关文章!