c ++ static不会链接

AK_*_*AK_ 0 c++ static linkage

你能帮我吗?以下代码:

class MT
{
public:
    static int ms_number;

};

int MT::ms_number;
Run Code Online (Sandbox Code Playgroud)

收益率:

Error   8   error LNK2005: "public: static int MT::ms_number" 
      (?ms_number@MT@@2HA) already defined in ProjName.obj
Run Code Online (Sandbox Code Playgroud)

为什么?

R S*_*hko 12

你需要移动这一行:

int MT::ms_number;
Run Code Online (Sandbox Code Playgroud)

超出.h文件并进入单个.cpp文件.

  • @Hellfrost:你只允许定义一次.如果它在标题中,那么它最终将在包含标题的每个源文件中定义. (2认同)