我在网站上做了一些关于xcode和C ++中未声明的标识符错误的阅读。通常它似乎来自代码中的某些小错字,但我无法弄清楚为什么我会收到此错误(另请注意我是C ++的初学者,所以我可能只是犯了一些愚蠢的错误)。
我正在编写自己的人工神经网络库,当我尝试编译“连接”时。我得到了一堆"使用未声明的标识符' Node'" Connection.h文件中包含Node类的每一行的错误。 Node和Connection类位于同一名称空间中,并且两个cpp文件完全针对头文件中声明的所有函数实现。以下是这两个类的头文件:
Connection.h(我遇到问题):
#include <iostream>
#include <tuple>
#include <boost/shared_ptr.hpp>
#include "Node.h"
namespace ANN{
class Connection{
public:
Connection();
Connection(boost::shared_ptr<Node> inNode, boost::shared_ptr<Node> outNode, float weight, int connID);
~Connection();
virtual boost::shared_ptr<Node> getInputNode();
virtual boost::shared_ptr<Node> getOutputNode();
virtual void setInputNode(boost::shared_ptr<Node> inNode);
virtual void setOutputNode(boost::shared_ptr<Node> outNode);
virtual float getConnectionWeight();
virtual void setConnectionWeight(float weight);
virtual int getConnectionID();
virtual void setConnectionID(int ID);
protected:
std::tuple<boost::shared_ptr<Node> , boost::shared_ptr<Node> , float> connection;
int connectionID;
private:
};
}
此外,我还在我声明了受保护连接变量的行中得到了一些其他错误。我得到了一个&#34; Parse问题:期待一个&#34;&#34;和&#34;解析问题:预期成员名称或&#39 ;;&#39;在声明说明符&#34;。
之后这是Node.h:
#include <iostream>
#include <vector>
#include <boost/shared_ptr.hpp>
#include "ActivationFunction.h"
#include "Connection.h"
namespace ANN{
class Node{
public:
enum{
INPUT = 0,
HIDDEN = 1,
OUTPUT = 2
}kANNnodeTypes;
Node(int num, int nodeType);
~Node();
virtual void addOutputConnection(boost::shared_ptr<Connection> outputConnection);
virtual void activateNode(ActivationFunction* activationObject);
virtual void addInputSignalFromIncomingNode(float inputSignal, float connectionWeight);
virtual int getNodeType();
virtual int getNodeNum();
virtual void loadInputAsSensorInput(float input);
virtual bool isActivated();
virtual bool isAllInputsReceived();
virtual float getLatestOutput();
virtual void resetNode();
virtual void sendOutputToOutputNodes();
virtual void setNumberOfInputConnections(int nC);
virtual int getNumberOfInputConnections();
protected:
int nodeNum;
int nodeType;
int nInputConnections;
int inputConnectionCount;
float latestOutput;
bool activated;
float inputSignal;
bool allInputsReceived;
std::vector<float> outputWeights;
std::vector<boost::shared_ptr<Node>> outputConnections;
private:
};
}