在以下课程中:
class TestClass
{
public:
int staic testMember;
};
int TestClass::testMember;
我遇到以下编译错误:
错误LNK2005:“public:static float TestClass :: testMember”(?testMember @ TestClass @@ 2MA)已在TestClass.obj中定义
注意:我试图在一个单独的应用程序中模拟问题,但一切都运行良好。
我想知道这里的问题在哪里?
答案 0 :(得分:2)
您的定义:
int TestClass::testMember;
...可能与声明在同一个H文件中:
class TestClass
{
public:
int staic testMember;
};
将定义移动到自己的CPP文件中。您只需要定义一次。