当两个头文件互相包含的时候

来源:互联网 发布:墨刀软件下载 编辑:程序博客网 时间:2024/04/29 07:49

当我们在写程序的时候,由于类比较多,会不小心出现两个类之间出现互相包含的情况,如此一来,就出现了下面的错误信息:

>c:\users\administrator\documents\visual studio 2010\projects\mpf\mpf\mpfdlg.h(33): error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>c:\users\administrator\documents\visual studio 2010\projects\mpf\mpf\mpfdlg.h(33): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\users\administrator\documents\visual studio 2010\projects\mpf\mpf\mpfdlg.h(33): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

那么,要解决这个问题,我们就要根据提示的错误信息,找到那个对象对应的类的头文件中,找到互相包含的那个头文件,删除,就可以解决这样的问题。

如我这里:

在 "MPFDlg.h“中

#pragma once
#include <gdiplus.h>
#include "Thread2.h"////////////////////包含了这个头文件
#include "Player.h"
#include "afxtempl.h "
#include "SongsItem.h"

下面在那个头文件中:

在"Thread2.h"中:

#pragma once
#include "afxcmn.h"
#include "SongsItem.h"
#include "MPFDlg.h////////////////包含了这个头文件
#include "Thread2.h"

如此就造成了文章开头出现的错误了。

原创粉丝点击