C++ #将问题包含在C+中+;
我有三节课。 主类是C++ #将问题包含在C+中+;,c++,.net,winforms,visual-studio-2010,c++-cli,C++,.net,Winforms,Visual Studio 2010,C++ Cli,我有三节课。 主类是Form1 另外两个是Form2和Class3 我将Form2和Class3包括在Form1中,我的意思是我在Form1中有以下内容: #include "Form2.h" #include "Class3.h" #include "Class3.h" 此外,在表格2中我包含了Class3,因此在表格2中我有以下内容: #include "Form2.h" #include "Class3.h" #include "Class3.h" 但我得到了重新定义的错误,我如何
Form1
另外两个是Form2
和Class3
我将Form2和Class3包括在Form1中,我的意思是我在Form1中有以下内容:
#include "Form2.h"
#include "Class3.h"
#include "Class3.h"
此外,在表格2中我包含了Class3,因此在表格2中我有以下内容:
#include "Form2.h"
#include "Class3.h"
#include "Class3.h"
但我得到了重新定义的错误,我如何才能解决这个问题
我总是面临这样的问题,有时在
stdafx.h
中包含标题就足够了,但有时不起作用。因此,另一个问题是如何利用和使用默认情况下在C++/CLI winform项目中创建的stdafx.h
。使用或。尝试将其添加到Class3.h中:
#ifndef _CLASS3_H
#define _CLASS3_H
/* your code here */
#endif
这应该行得通
因此,您知道发生了什么,这会阻止Class3.h重新定义所有已经完成的内容。在您的程序中,Form1使用Class3,但Form2也使用Class3。第一次包含Form2和Class3时,下一行再次尝试包含Class3,然后出现重新定义错误
希望这能让你明白
p、 s:我强烈建议你对所有的.h文件都这样做,尽管我建议对整个项目使用一个头文件
*.hh
。我认为这是非常非常糟糕的建议,Basile。更好的做法是为每个.cpp文件都有一个头文件。好得多。@Aan:你的错误是什么?你的代码是什么样子的。听起来您需要开始在.h文件中使用,但根据您提供的信息,我不能确定。您有一个名为Class3.h
的文件,但其中没有定义类。