C++中类的static int和just int之间的区别

the*_*aps 3 c++

可能重复:
static int a和int a有什么区别?

我试着用简单的英语简单解释一下.我试图阅读和研究它们之间的区别static int,int但是无论我读到什么,它似乎都让我更加困惑.假设我有一个类似下面的课程

class B{
  static int i;
  int i;
  ...
}
Run Code Online (Sandbox Code Playgroud)

用简单的英语,两者有什么区别?想象一下,你正在向非程序员解释.有人在这里问了类似的问题,但这并不令我满意.

Sin*_*all 6

这是你的比喻.

想象一下拥有银行账户的组织.就C++而言,该组织就是您的组织class.想象一下,组织有代表(工人,如果你想).就C++而言,它们是该类的实例(或变量).

现在,每个代表都可以拥有自己的银行账户,仅供他使用.没有其他人可以使用它.那将是正常的int.

但是,每个工作人员也可以使用由他们共享的组织的银行帐户,特别是不属于他们中的任何一个.那是你的static int.


现在,再次回到技术术语,万一你会想要它.我会尽量清晰简洁.

  • 正常int:

    类类型的每个变量都有自己的个人变量.因此,在您的示例中,如果您生成10个类型的变量,则B每个变量都将在其中包含自己 int i变量.

  • static int:

    静态变量是类的所有变量共享的.静态变量不属于任何类变量,它属于类本身.因此,如果你要创建10个类型的变量B,每个变量都可以访问static int i,但是没有一个变量拥有它(它是共享的).