c ++ static不会链接

时间:2010-06-20 15:47:05

标签: c++ static linkage

你能帮忙吗? 以下代码:

class MT
{
public:
    static int ms_number;

};

int MT::ms_number;

的产率:

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

为什么?

2 个答案:

答案 0 :(得分:12)

你需要移动这一行:

int MT::ms_number;

从你的.h文件到单个.cpp文件。

答案 1 :(得分:-2)

除了Sam Sam Klatchko的回答之外,静态需要被定义为extern。