c++ - 多次包含cpp文件

标签 c++

我的项目中有 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/

相关文章:

c++ - 在 Safari 中打开 Ios 上的 URL?

c++ - 重载 >> 运算符给我运行时错误 C++

元素少于结构的 C++ 初始值设定项列表

c++ - 将 std::reference_wrapper<Derived> 视为 std::reference_wrapper<Base> 的最佳方式

c++ - 重新分配 unique_ptr

c++ - 链接 QX11Info

c++ - 如何在C++中使用编译时三元运算符来获取对象成员

c++ - 函数原型(prototype)

c++ - 如何在 C++ 中创建不可删除的注册表项(或文件)

c++ - 如何检查一个 C++ 类是否扩展了另一个类(比如另一个类是否是一个接口(interface))?