C++静态成员初始化问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:11:41
#include "iostream.h"
class a
{
public:
static int x;
static void print()
{
cout<<x<<endl;
}
};
int a::x=0;
void main()
{
a::print();
}
在这个程序中如果删除了int a::x=0;编译就不会通过,我想问的是静态数据成员变量一定要初始化吗?系统不会自动给它初始化为0吗?为什么?

一定要的.系统不会自动初始化.
因为,在声明,定义类的时候并没有实际对象产生,而静态成员必须存在,所以在外面初始化,告诉编译器已经准备好了,可以产生对象了!