我有 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/