I use the following header Node.h:
/*
INCLUDE PROTECTION
*/
#ifndef NODE_H_INCLUDED
#define NODE_H_INCLUDED
/*
Include
*/
#include <vector>
#include <unordered_map>
//#include "NodeConnection.h"
#include "Tile.h"
#include "Network.h"
/*
Declarations
*/
class Network;
class NodeConnection;
class Node {
private:
Tile* tile;
std :: vector <NodeConnection*> connections;
std :: unordered_map <Node*, NodeConnection*> connectionmap;
public:
/* Enumeration */
enum NAVIGATION {
RIGHT = 0,
UP = 1,
LEFT = 2,
DOWN = 3
};
Node (Tile* _tile);
void FindNeighbours(Board* board, Network* network);
void SetNodeConnection(Node* node, NodeConnection* nodeconnection);
};
struct TileNavigation {
Tile* tile;
enum Node :: NAVIGATION navigation;
};
#endif
And the following in the header of NodeConnection.h:
/*
INCLUDE PROTECTION
*/
#ifndef NODECONNECTION_H_INCLUDED
#define NODECONNECTION_H_INCLUDED
/*
Include
*/
#include <string>
#include "Node.h"
/*
Declarations
*/
class Node;
struct Nodes;
enum ConnectionType {
WALLCONN, PATHCONN, UNKNOWN
};
class NodeConnection {
private:
enum ConnectionType contype;
struct Nodes;
public:
//NodeConnection ();
NodeConnection (Node* a, Node* b, NAVIGATION initial_nav);
};
struct Nodes {
Node* left;
Node* right;
std :: string steps;
};
#endif
I have tried Node :: NAVIGATION and NAVIGATION, but yet it keeps telling me that
" 'NAVIGATION' has not been declared "
Does anyone know what I am doing wrong? Thanks in advance for pointers.
Node::NAVIGATIONshould work see live example.NodeConnection (Node* a, Node* b, Node :: NAVIGATION initial_nav);does not work, it gives the same errorNode::NAVIGATIONworks as is, so you're not telling us some important detail. for example, isNodedeclared within a namespace?