C++ 我的计划中包含的内容太多了

C++ 我的计划中包含的内容太多了,c++,scope,header,C++,Scope,Header,这里的问题是,我的程序中有13个包含文件(我愿意包含更多!),但问题是编译器忽略了最后一个包含文件,我可以这么说,因为我在其中两个文件之间切换了,错误将始终出现在最后一行,即第13行 这里是包含文件 #include <iostream> #include <fstream> #include <cstdlib> #include <iomanip> #include <vector> //for dynamic tables #inc

这里的问题是,我的程序中有13个包含文件(我愿意包含更多!),但问题是编译器忽略了最后一个包含文件,我可以这么说,因为我在其中两个文件之间切换了,错误将始终出现在最后一行,即第13行

这里是包含文件

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
#include <vector> //for dynamic tables
#include <string>
#include <conio.h>//used for the function getch
#include "checkPassword.hpp"
#include "buffervoider.hpp"
#include "checktyping.hpp"
#include "extractline.hpp"
#include "getchoic.hpp"
#include "tableidentify.hpp"
#包括
#包括
#包括
#包括
#包含//用于动态表
#包括
#include//用于函数getch
#包括“checkPassword.hpp”
#包括“buffervoider.hpp”
#包括“checktyping.hpp”
#包括“extractline.hpp”
#包括“getchoic.hpp”
#包括“tableidentify.hpp”
这里的错误是:

|错误:“TableIdentity”未在此范围内声明|

但是如果我在#include“getchoic.hpp”和#include“tableidentify.hpp”之间切换 错误是

|错误:“getchoic”未在此作用域中声明|

我所有的头球都有护卫


那么如何解决这个问题呢?

您可能有一个循环包含:一个文件包含另一个文件,其中包括第一个文件。

我假设其中一些头文件是用户定义的(即您创建的)。如果是,请尝试将所有用户定义的头include语句组合到另一个头中,然后将其包括在内。

如果这些hpp文件是您的,则删除其中一个包含另一个头的头中的
\include
,因此如果
tableidentify.hpp
具有
\includes getchoic
,反之亦然,将其中一个包括拆到另一个

是的,我需要。所以如何在不影响循环包含的情况下修复此问题,因为我需要循环包含。您必须打破循环。@shuzo您不能使用循环包含。做一个关于如何避免它的搜索。是的,我在我所有的生活中都有headers@RSahu-缺少包含防护装置将产生重新定义错误。文件消失意味着include守卫正在做他们的工作。那么.cpp文件呢?我是否也应该合并它们?或者我只是在每个超级标题中包含我将创建的超级标题?1个超级标题。(顺便问一下,你否决了我的答案吗?)不,我没有,我正要投票表决,如果它有效,我在这里谈论的是源文件,它们是否也要合并?不,第8-13行必须组合的唯一一件事是“我的所有头文件都不包含任何其他头文件,但在函数的源文件中,它们确实包含彼此。这是一个问题吗?是的,它们不应该包含彼此,否则会导致循环包含问题与包含的数量无关。如果真的有限制的话,我从来没有遇到过。这里有一个循环依赖性问题。
#include
语句永远不能生成“未在此范围内声明”错误。即使是循环依赖也不行。错误在#include本身上,对吗?不是你要包括的文件里的东西?