c++中静态成员变量为什么要在类外部再定义?否则产生link2001错误
class testClass
{
public:
static int m_i;
};
int testClass::m_i;
//类外部定义,若不写会产生error LNK2001: unresolved external symbol "public: static int testClass::m_i" (?m_i@testClass@@2HA)
int main(int argc, char* argv[])
{
printf("%d\n",testClass::m_i);
printf("\n");
return 0;
}
能否说说是什么原因?