Xcode C ++“使用未声明的标识符”错误与另一个类

时间:2014-05-31 03:34:45

标签: c++ xcode boost

我在网站上做了一些关于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:


    };
}

0 个答案:

没有答案