多次包括cpp文件

时间:2014-12-08 22:46:29

标签: c++

我的项目中有4个文件,当我尝试编译它时,我收到此错误:

error C2011: 'Details' : 'class' type redefinition

我认为这是因为我在我的文件中使用了#include"AClass.cpp"三次并加载了三次,但当我删除另外两个#include"AClass.cpp"时,编译失败,因为找不到AClass那些文件。

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,通常你根本不包括cpp文件。但无论如何,对于头文件,您可能会遇到相同的情况。这就是为什么大多数c ++标头都包含在以下宏中的原因:

#ifndef SOME_HEADER_H
#define SOME_HEADER_H

class foo;

#endif //SOME_HEADER_H

当然,您必须使用唯一名称替换SOME_HEADER。

当然有些情况(我之前很短时间就有这种情况),你打算多次包含一个标题..某些泛型和其他一些神奇的东西。但总的来说,建议不要这样做。