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