读书人

c++菜鸟

发布时间: 2012-03-09 16:54:56 作者: rapoo

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

读书人网 >C++

热点推荐