我得到一个未声明的标识符错误,我不知道为什么。我甚至重写了完整的内容,以确保我没有输入错字。有人能告诉我为什么我有这个错误吗?C++未声明的标识符错误
我的文件
Connection.hpp
#pragma once
#include "../LogicSimulator.hpp"
#include "CircuitObject.hpp"
class Connection
{
public:
Connection(CircuitObject& c1, CircuitObject& c2, LogicSimulator&
simulator);
private:
int state;
CircuitObject& c1;
CircuitObject& c2;
LogicSimulator& simulator;
};
不介意CircuitObjects
,他们不给任何错误,错误:未声明 'LogicSimulator'
Connection.cpp
#pragma once
#include "Connection.hpp"
#include "../LogicSimulator.hpp"
#include "CircuitObject.hpp"
Connection::Connection(CircuitObject& c1, CircuitObject& c2, LogicSimulator&
simulator) : c1(c1), c2(c2), simulator(simulator)
{
state = c1.State;
}
个
错误:未申报 'LogicSimulator'
LogicSimulator.hpp
#pragma once
#include "Simulator\CircuitObject.hpp"
#include "Simulator\Connection.hpp"
#include <SFML\Graphics.hpp>
#include <vector>
class LogicSimulator
{
public:
std::vector<CircuitObject*> circuitObjects;
std::vector<CircuitObject*> selectedCircuitObjects;
std::vector<Connection*> connections;
sf::RenderWindow Window;
void Init();
private:
void start();
void draw();
};
不介意LogicSimulator.cpp,它不发出任何错误。
错误:未申报的“连接”(是的,在连接LogicSimulator是不宣)
是这条道路'的#include “../LogicSimulator.hpp” “对吗?” – SrAxi
循环依赖('#include's)是不好的。 – tkausl
查找“前向声明”。在开始制定定义之前,您有头文件相互依赖于其他文件。 '#pragma once'(或者包含守卫)解决了多重包含的问题,但不是(必然)定义相互依赖的问题。 – Peter