为什么?
因为如果这样的话,每构造一个对象就要进行一次初始化,而这样就不能达到类共享的目的。
为什么?
因为在类的仅仅进行了声明(编译器会这样认为),没有分配存储空间,在类外进行初始化话,是为了分配存储空间。
示例
#include "stdafx.h" #include <iostream> using namespace std; class A { public: static int num; void show() { cout<<num<<endl; } }; //static int A::num=100; //非法 int A::num; int main(void) { A temp=A(); temp.show(); system("pause"); return 0; }
C++静态成员变量需注意的问题,布布扣,bubuko.com
原文:http://blog.csdn.net/cjc211322/article/details/38423607