#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Test
{
public :
int a;
static int b;
public:
Test(int _a,int _b):a(_a)
{
b=_b;
}
};
int Test::b;//这里必须对static成员进行定义,因为每个对象的构造函数都不会创建这个成员
int main(int argc, const char *argv[])
{
Test t1(0,0),t2(0,0);
t1.b=10;
t2.b=20;
cout<<t1.b<<" "<<t2.b<<endl;
return 0;
}
//上面的代码输出结果是 20 20。类中的static成员独立于每个对象,构造函数不能将它初始化赋值,它能被每个对象使用。
ISO C++ forbids in-class initialization of non-const static member