下面这段c语言c2143错误错误百出,能帮忙改一下吗

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

背景:当在MainFrame类中包含CView.h文件时会出现编译错误。

下面我们首先看看编译器的错误提示信息:

我们可以在第一条错误提示上双击鼠标左键VC++将在代码编辑窗口打开CView类头文件,并定位到如图中光标所示位置

这个错误在程序开發中会经常遇到,实际上并不是错误信息所说的那样要在*号前加一个分号,而是程序不认识CSplitterDoc这个类我们知道,C++程序在编译时只有源攵件参与编译,我们在CMainFrame类的源文件前部加入了包含splitterView.h文件的代码#include "splitterView.h"因此,在编译CMainFrame类得源文件时当遇到这行语句,就会展开splitterView.h文件的内容但該文件中引用了尚未定义的splitterDoc.h类,因此编译器就会报告上述错误信息那为什么视类的源文件包含它的头文件,在编译时没有出错呢可以先看看splitterView类得源文件,下面是她开始的几行语句:

可以看到splitterView.cpp文件在包含splitterView.h文件之前包含了splitterDoc.h类文件的内容,该文件中是splitterDoc类得定义然后才展开splitterView.h攵件,这是编译器知道了splitterDoc类的定义其实,为了解决上述错误归根到底就是要让编译器在引用splitterView类定义之前就知道了splitterDoc类的定义。因此为叻解决这里出现的问题,可以把视类源文件中包含文档类的定义语句移到视类的头文件中并放置在视类定义之前。即剪切splitterView.cpp中的“#include

再次编譯OK!这时程序顺利通过,问题解决了

发布了15 篇原创文章 · 获赞 16 · 访问量 5万+

}

以花括号{}给包围起来的代码段称為block,只要在block开始的地方定义变量就不会错;
该变量的作用域和生存期(除了static限定)只在该block里,且该变量可以屏蔽block外的变量;

本文为摘抄笔记原创請查看:

}

我要回帖

更多关于 C语言错误 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信