LNK2005 - 已定义的对象

时间:2014-11-05 15:31:16

标签: c++

我有两个.cpp文件和一个.h文件:

#include <iostream>
#include <string>
#include <vector>

namespace characters
{
    using namespace std;
    class character{
    public:
        void info_character();
    //...
    };
}

我将此头文件添加到我的.cpp文件中。所以当我想使用时:

int _tmain(int argc, _TCHAR* argv[])
{
    character test();
    test.info_character();
}

导致错误:

  

错误1错误LNK2005:“public:void __thiscall   人物::人物:: info_character(无效)”   (?info_character @ character @ characters @@ QAEXXZ)已经定义了   Mechanics.obj

如何修复它(我想将头文件添加到我的所有.cpp文件中)?

1 个答案:

答案 0 :(得分:1)

您应该确保包含文件不包含character::info_character的实现,除非您使用内联实现(您的摘录没有)。

移动此代码

void character::info_character()
{
   ...
}

到其中一个.cpp文件。