我的项目中有 4 个文件,当我尝试编译它时,出现此错误:
error C2011: 'Details' : 'class' type redefinition
我认为这是因为我在我的文件中使用了三次 #include"AClass.cpp"
并且加载了三次,但是当我删除另外两个 #include"AClass .cpp"
,编译失败,因为在该文件中找不到 AClass。
最佳答案
如评论中所述,通常您根本不包含 cpp 文件。但是无论如何,对于头文件,您都可能遇到同样的情况。这就是为什么大多数 C++ 头文件都包含在以下宏中的原因:
#ifndef SOME_HEADER_H
#define SOME_HEADER_H
class foo;
#endif //SOME_HEADER_H
当然,您必须用唯一的名称替换 SOME_HEADER。
当然,在某些情况下(我不久前遇到过一个这种情况),您打算多次包含 header ……某些泛型和其他一些神奇的东西。但总的来说,最好不要这样做。
关于c++ - 多次包含cpp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27368433/