c++菜鸟

c++初学者#include iostream.hints0//定义全局变量classS{staticintn//静态变量npublic:S(inti){ni

c++初学者
#include <iostream.h>
int     s=0;//定义全局变量
class     S
{  
static     int     n;//静态变量n
public:
S(int   i){n=i;}//有参构造函数
static     void     add(){s+=n;}//静态函数
};
   
int     S::n   =0;//类外给n赋初值0
    void     main()
    {
    S     b(7),     a(2);
    a.add();
    b.add();
    cout < < "S= " < <s < <endl;

这个题目里为什么答案最后等于4,请叫高手给出详细的解释,     还有谁知道噶C++的QQ群,给小弟介绍几个。/在此言谢了!!
    }

[解决办法]
n是static,所以所有实例用到的n是同一个

S b(7), a(2);

// 当定义 b(7)的时候n为7,然后你又定义 a(2);把n改为了 2


a.add();
b.add();

// 两次都是 + 2

所以是4