2

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

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

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

#include "Class3.h"

但我得到重新定义错误,我该如何解决这个问题。

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

4

2 回答 2

4

尝试在 Class3.h 中添加:

#ifndef _CLASS3_H
#define _CLASS3_H

/* your code here */

#endif

那应该工作

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

希望这能让你清楚

ps:我强烈建议您对所有 .h 文件执行此操作,不过

于 2013-01-23T14:24:30.603 回答
3

使用包括警卫#pragma once.

于 2013-01-23T14:23:23.913 回答