现象 在一个类的头文件中,定义了一个static类型的类变量,直接编译,会报错。 例如,在IX.h中定义一个静态的Iy变量,如下: class Ix { public:static Iy* y; } 编译时会报错,提示如下: Ix.obj : error LNK2001: 无法解析的外部符号 "public: static class Iy * Ix::y" (?y@Ix@@2PAVIy@@A) 分析 原因是,在C++中,静态成员变量需要在类外进行定义和初始化。 解决方法 在Ix.cpp中初始化: Iy* Ix::y = NULL;