c++ - C++ 中的#include 问题

标签 c++ .net winforms visual-studio-2010 c++-cli

我有 3 个类(class)。 主类是 Form1 另外两个是Form2 & Class3 我在 Form1 中包含了 Form2 和 Class3,我的意思是我在 Form1 中有以下内容:

#include "Form2.h"
#include "Class3.h"

另外,在 Form2 中我包含了 Class3,所以我在 Form2 中有以下内容:

#include "Class3.h"

但是我得到重新定义错误,我该如何解决。

我总是遇到这样的问题,有时在 stdafx.h 中包含 header 就足够了,但有时却不起作用。那么另一个问题是如何利用和利用在我的 C++/CLI winform 项目中默认创建的 stdafx.h

最佳答案

尝试在 Class3.h 中添加:

#ifndef _CLASS3_H
#define _CLASS3_H

/* your code here */

#endif

这应该行得通

所以你明白发生了什么,这是在阻止你的 Class3.h 重新定义一切,如果它已经完成的话。在您的程序中,Form1 使用 Class3,但 Form2 也使用。第一次包含 Form2 时,也包含 Class3,然后,下一行尝试再次包含 Class3,然后出现重定义错误。

希望这能让你明白

p.s.:尽管如此,我强烈建议您对所有 .h 文件执行此操作

关于c++ - C++ 中的#include 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14481925/

相关文章:

c++ - 在图像顶部模拟天体(星星)

c++ - Gtkmm - 更改窗口的最小尺寸

python - 如何控制 fbprophet 的输出?

c# - 未抛出 OptimisticConcurrencyException : Possible reason: UpdateCommand

WinForms 对话框窗体——关闭还是处置?

c++ - 是否可以调试打印当前函数的调用者?

c# - 每台机器都使用相同的种子生成相同的随机数结果吗?

.net - 如何为 Visual Studio 构建/扩展设计器

c# - 禁用 TreeView 节点焦点提示

c# - 如何估计待打印字符串的长度?