CPP包含头文件导致成千上万的错误
CPP include header file results in thousands of errors
当我包含这个头文件"pathfinding.h":
#pragma once
#include <BWAPI.h>
#include "BWAPI/TilePosition.h"
#include <vector>
#include "PathNode.h"
#include "Logger.h"
#include "ArgosMap.h"
#include "MapField.h"
#include "Utils.h"
#include "ComparePathNodePointer.h"
using namespace BWAPI;
class Pathfinding {
private:
std::vector<PathNode*> openList;
std::vector<PathNode*> closedList;
std::vector<Position*> buildpath(PathNode* targetNode);
void expandNode(PathNode* currentNode, MapField* targetField);
ArgosMap* argosMap;
public:
Pathfinding();
~Pathfinding();
std::vector<Position*> getShortestPath(MapField* startField, MapField* targetField);
};
在这个头文件"UnitAgent.h":
#pragma once
#include <BWAPI.h>
#include <vector>
#include "ArgosMap.h"
#include "Pathfinding.h"
using namespace BWAPI;
class UnitAgent {
protected:
Unit* unit;
UnitType unitType;
int unitID;
std::vector<Position*> trail;
Position target;
public:
UnitAgent(Unit* unit);
std::vector<Position*> getTrail();
Position getTarget();
Position* getPosition();
int getUnitID();
void setTarget(Position target);
void addPositionToTrail(Position* targetLocation);
void moveTo(TilePosition* targetPosition);
};
我得到了一百万个错误,主要是错误C2143, C2065。但这不是真的,错误不存在。当我在另一个文件中包含头文件时,一切都很好(除了那些需要特定头文件的东西)。
知道我应该检查什么吗?有人知道我如何检查我的c++代码,在某种程度上Eclipse检查我的java代码。我的意思是为什么Visual Studio不这样做?
这种指令不应该出现在头文件
using namespace BWAPI;
首先,为什么你需要这些
#include <BWAPI.h>
#include "BWAPI/TilePosition.h"
#include <vector>
#include "PathNode.h"
#include "Logger.h"
#include "ArgosMap.h"
#include "MapField.h"
#include "Utils.h"
#include "ComparePathNodePointer.h"
using namespace BWAPI;
在pathfinding.h 吗?只需转发声明ArgosMap, MapField, PathNode和Position,如
class ArgosMap;
class MapField;
class PathNode;
class Position;
查看Pathfinding类的声明,如果需要实现寻路方法,上面的内容应该放到Pathfinding .cpp中。头文件中的内容和依赖项越少,调试起来就越容易。
pathfinding.h中的声明看起来很好,问题是有些方法没有实现/没有正确实现。要找出这些方法是什么,您需要缩小问题的范围——首先删除不必要的依赖项。
在不使用其他头文件的方法/方法的文件中包含pathfinding.h总是可以工作的很好…
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- CPP包含头文件导致成千上万的错误