VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 922|回复: 6

[求助] 【关于头文件的重复包含、两个头文件的互相包含问题】【都有什么解决放法】

[复制链接]
21_avatar_middle
online_vip 发表于 2015-11-5 09:09:47 | 显示全部楼层 |阅读模式
初学vc遇到头文件的互相包含问题,大概意思就是头文件A包含头文件B,头文件B也包含头文件A,当然是这样编译没发生错误,但当在头文件A中声明头文件B中的类,编译就会发生错误,错误如下:
1>c:\users\pc for ui\documents\visual studio 2010\projects\example11\example11\mydlg.h(28): error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>c:\users\pc for ui\documents\visual studio 2010\projects\example11\example11\mydlg.h(28): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\users\pc for ui\documents\visual studio 2010\projects\example11\example11\mydlg.h(28): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int


后来经老大指点解决了这个问题,但还是有些不明白,请各路大神分享点有关如何才能避免产生这样问题和遇见这样问题的解决方案





上一篇:将char数组直接强制转换成结构体类型只能在vc++中实现么?
下一篇:各位大侠 谁有VC++ OpenGL的教学视频啊?
84_avatar_middle
在线会员 发表于 2015-11-5 09:29:33 | 显示全部楼层
头文件卫士,#ifdef
57_avatar_middle
在线会员 发表于 2015-11-5 09:43:07 | 显示全部楼层
#program once
21_avatar_middle
ico_lz  楼主| 发表于 2015-11-5 10:20:38 | 显示全部楼层
ducs 发表于 2015-11-5 09:29
头文件卫士,#ifdef

能介绍下具体用法嘛?【关于头文件的重复包含、两个头文件的互相包含问题】【都有什么解决放法】
21_avatar_middle
ico_lz  楼主| 发表于 2015-11-5 10:21:59 | 显示全部楼层

这个防止多次编译,对头文件相互包含也有作用?原因能解释下嘛?【关于头文件的重复包含、两个头文件的互相包含问题】【都有什么解决放法】
51_avatar_middle
online_admins 发表于 2015-11-5 13:56:51 | 显示全部楼层
一般这样的头文件重复包含的错误也没啥直接的解决办法,可以用间接的解决办法
比如类A中要声明类B的成员变量,类B中要声明类A的成员变量的时候,不直接定义成类A的类型,而是类似我帮你解决的时候,可以声明类A的父类型指针,或者声明成 void * 类型的指针,等在 cpp 中用的时候直接强制类型转换即可
43_avatar_middle
online_vip 发表于 2016-1-8 15:51:16 | 显示全部楼层
#ifndef _MYDLG_H_H
#define _MYDLG_H_H

//代码

#endif
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-4-19 09:25

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表