[新人求助]头文件包含方面的问题

问题描述

个人认为是头文件包含那边的问题,但是在做窗体程序的时候出现的,便在这个区中询问。菜鸟一枚,请多指教。我想制作这样一个功能,建立了一个窗体后,在窗体上按一个按钮会新建另一个窗体同时hide本窗体;然后在新建的窗体上设一个返回按钮,点击后会把原先的窗体show回来。姑且把这两个窗体文件叫做form1.h和form2.h。1.我在form1.h中include了form2.h,然后执行form2的gcnew,没有问题;2.然后我在form2.h中include了form1.h。这下子在form1中的gcnew那部分也会报错,告诉我form2是未声明的标识符;3.询问了以后别人说是重复包含头文件可能会出的问题,建议我还是直接在form1.h中声明一下refclassform2;4.我如此做了之后再form1当中报错“没有默认的构造函数可以使用”以上是我出现问题的过程,能否请大神指导一下这些问题要如何解决?或者知道我的根本问题出在哪?

解决方案

解决方案二:
你为什么要循环引用,去掉不就可以了吗,如果非要这样,可以在cpp文件中引用对方的头文件
解决方案三:
把include放在#pragmaonce之后试试

时间: 2024-09-21 00:34:58

[新人求助]头文件包含方面的问题的相关文章

xcode-vtk 头文件包含的相关问题

问题描述 vtk 头文件包含的相关问题 编译好的vtk中是否有include文件夹?我在调用vtk的头文件时,如下面代码所示: #include ""vtkDICOMImageReader.h""#include ""vtkPiecewiseFunction.h""#include ""vtkColorTransferFunction.h""#include ""vt

程序设计方式 之 嵌套头文件包含方式

       一直以来写程序有个习惯,喜欢把常用的STL类,或者其他常用的类,变量,宏等定义到一个文件内,然后在使用其中一个类的地方包含这个文件.一直再使用,也一直存在困惑,这种设计方式的能否放心大胆的使用,对它始终心存畏惧,所有这些促使我完成这篇文章,并且经过种种测试,有足够的信心继续使用这种设计方式.        操作如下 定义base.h文件,包含基本的STL类,并且通过typedef建立不同的映射关系,以便减少不同的文件出现过多vector<string>之类的声明方式.当需要使用v

关于windows h-请教大神有什么书详细介绍像windows.h这类头文件包含的函数的具体用法的?

问题描述 请教大神有什么书详细介绍像windows.h这类头文件包含的函数的具体用法的? 请教大神有什么书详细介绍像windows.h这类头文件包含的函数的具体用法的? 我想系统的学一学这个头文件下的函数的具体用法,苦于找不到相关的书籍,求大神推荐啊 解决方案 WINDOWS核心编程 http://download.csdn.net/detail/huangxy10/5783907 Win32 API 参考手册 http://www.pudn.com/downloads118/ebook/det

c语言头文件包含问题-关于头文件包含的问题,请教大家!

问题描述 关于头文件包含的问题,请教大家! 程序源文件中有两个头文件,头文件A中定义了一个结构体类型_tag_addr,并在头文件开头使用了#ifnodef #define预编译宏;头文件B中定义了一个结构体类型_tag_bddr,也在头文件开头使用了预编译宏,现在的问题是我要在头文件A中声明一个_tag_bddr类型的变量,在头文件B中声明一个_tag_addr类型的变量,所以要在头文件A开头包含头文件B,也要在头文件B中包含头文件A,但是这样做编译时头文件A报错,说是没有_tag_bddr类

socket-【C++】符号重定义,头文件包含问题

问题描述 [C++]符号重定义,头文件包含问题 #pragma once #include "Common.h" #include "WinSock.h" class CSockOperation { public: int Send(SOCKET socket,const char* buf,int len);//失败返回错误值 int Recv(SOCKET socket,char* lpBuf,int nBufLen);//失败返回错误值 int CSockO

头文件 webkit-makefile 头文件包含问题

问题描述 makefile 头文件包含问题 我最近在看Android使用的Webkit库,发现webkit/WebCore/ForwardingHeaders/wtf/Forward.h文件中包含的头文件是#include <JavaScriptCore/Forward.h>,而JavaScriptCore路径下没有Forward.h,实际的路径是webkit/JavaScriptCore/wtf/Forward.h,我对Makefile不是特别熟悉,望高人指点!

浅析VC++中的头文件包含问题_C 语言

在一些大的工程中,可能会包含几十个基础类,免不了之间会互相引用(不满足继承关系,而是组合关系).也就是需要互相声明.好了,这时候会带来一些混乱.如果处理得不好,会搞得一团糟,根据我的经验,简单谈谈自已的处理办法: 编码时,我们一般会尽量避免include头文件,而是采用声明 class XXX.但有时候还是必须用Include头文件,那么,两者的划分在于什么呢? 应该是很明确的,但书上好像都少有提及. 首先:我们要明白为什么要用声明取代头文件包含:对了,是为了避免无必要的重编译(在头文件发生变更

c语言问题-C语言的头文件有包含顺序吗?

问题描述 C语言的头文件有包含顺序吗? C语言的头文件有包含顺序吗?有的话,是什么呀,---------- 解决方案 有包含顺序,即使添加了#ifndef也不一定有用 一个合理的建议:所有的.h中不包含.h,放在CPP中包含.但是每个模块有一个特殊的共通头文件,只用于包含该模块使用的外部的头文件,并且所有的cpp文件必须是最先包含该头文件. 解决方案二: 标注库基本没有包含顺序(差不多都处理掉了), 可以任意使用 但是自己定义的就有了 解决方案三: c语言之头文件包含顺序问题 1.头文件的包含是

C++头文件的包含顺序研究

一.<Google C++ 编程风格指南>里的观点        公司在推行编码规范,领导提议基本上使用<Google C++ 编程风格指南>.其中<Google C++ 编程风格指南>对于头文件的包含顺序是这样的:   Names and Order of Includes link ▽Use standard order for readability and to avoid hidden dependencies:C library, C++ library,