首页 > 后端开发 > C++ > 静态变量在 C 成员函数中的行为如何?

静态变量在 C 成员函数中的行为如何?

Patricia Arquette
发布: 2024-11-07 21:45:03
原创
721 人浏览过

How Do Static Variables Behave within Member Functions in C  ?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板