LNK2005 of death (c++)



我有一个简单的类:

兔子

class Bunny
{
public: 
Bunny(string givenName);
~Bunny();    
private:
string name;
};

兔子.cpp

#pragma once
#include "Bunny.h"
Bunny(string givenName)
{
name = givenName;
};

(我重写了代码,因为我无法复制它,所以它只是一个快速编写的示例)

一个包含.h文件 #include 这个,源.cpp #include是那个。每个文件仅包含一次,源.cpp仅包含一次 include.h 文件。我确实尝试过 #ifndef,#define,#endif。 这两种方法都导致了相同的问题:编译器说这个函数(以及我添加的任何其他函数)是乘法声明的。 我还尝试将定义复制到源代码.cpp(Bunny.h 和 Bunny.cpp按原样复制),错误消失了。

知道为什么编译器要定义这个函数两次

问题是在 Include.h 文件中,我包含了 Bunny.cpp而不是 Bunny.h 文件。然后编译器定义了两次函数,一次在 cpp 中,一次在 include.h 中。

相关内容

  • 没有找到相关文章

最新更新