|
| mo327 (5) | |
| Hi! I have made a class in whose private members i have included two arrays which I initialize in the class definition rather than the constructor. However, when i try to call any array of the two from a member function, the compiler shows this message: error C2065: 'adjacency_list' : undeclared identifier error C2065: 'directions' : undeclared identifier any ideas??? also, since i am asking this, directions[] is of type enum color {WHITE, = 0, GRAY, BLACK}. is that possible or am i writing nonsense? | |
| mo327 (5) | |
| i am using microsoft visual studio 2008 | |
| Bazzy (4120) | ||
Can you post some of the code? | ||
| mo327 (5) | |
| this is the code: #include <queue> using namespace std; enum color {WHITE = 0, GRAY, BLACK}; enum direction {UP = 1, RIGHT, DOWN, LEFT, N = 10}; class Vertex { public: color c; // color short d; // distance short n; // number Vertex *p; // predecessor }; class Map { public: Map(); ~Map(); void setAL(int, int, bool); bool getAL(int, int); bool *getAL(); direction getDirection(int, int); Vertex vertex[17]; void BFS(bool[], Vertex); private: void initializeJunctions(); bool adjacency_list[17][17] = { { false , true , false , false , false , false , true , false , false , false , false , false , false , false , false , false , false }, { true , false , true , false , false , false , false , false , false , false , false , false , false , false , false , false , false }, { false , true , false , true , false , false , false , false , false , false , false , false , false , false , false , false , false }, { false , false , true , false , true , false , false , false , false , false , false , false , false , false , false , false , false }, { false , false , false , true , false , true , false , true , false , false , false , false , false , false , false , false , false }, { false , false , false , false , true , false , true , false , false , false , false , false , true , false , false , false , false }, { true , false , false , false , false , true , false , false , false , false , false , false , false , false , false , false , false }, { false , false , false , false , true , false , false , false , true , false , false , false , false , true , false , false , false }, { false , false , false , false , false , false , false , true , false , true , false , false , false , false , false , false , false }, { false , false , false , false , false , false , false , false , true , false , true , false , false , false , true , false , false }, { false , false , false , false , false , false , false , false , false , true , false , true , false , false , false , true , false }, { false , false , false , false , false , false , false , false , false , false , true , false , false , false , false , false , true }, { false , false , false , false , false , true , false , false , false , false , false , false , false , false , false , false , false }, { false , false , false , false , false , false , false , true , false , false , false , false , false , false , false , false , false }, { false , false , false , false , false , false , false , false , false , true , false , false , false , false , false , false , false }, { false , false , false , false , false , false , false , false , false , false , true , false , false , false , false , false , false }, { false , false , false , false , false , false , false , false , false , false , false , true , false , false , false , false , false } }; direction directions[17][17] = { { N , RIGHT , N , N , N , N , DOWN , N , N , N , N , N , N , N , N , N , N }, { LEFT , N , RIGHT , N , N , N , N , N , N , N , N , N , N , N , N , N , N }, { N , LEFT , N , DOWN , N , N , N , N , N , N , N , N , N , N , N , N , N }, { N , N , UP , N , LEFT , N , N , N , N , N , N , N , N , N , N , N , N }, { N , N , N , RIGHT , N , UP , N , LEFT , N , N , N , N , N , N , N , N , N }, { N , N , N , N , DOWN , N , UP , N , N , N , N , N , RIGHT , N , N , N , N }, { UP , N , N , N , N , DOWN , N , N , N , N , N , N , N , N , N , N , N }, { N , N , N , N , RIGHT , N , N , N , LEFT , N , N , N , N , DOWN , N , N , N }, { N , N , N , N , N , N , N , RIGHT , N , UP , N , N , N , N , N , N , N }, { N , N , N , N , N , N , N , N , DOWN , N , UP , N , N , N , LEFT , N , N }, { N , N , N , N , N , N , N , N , N , DOWN , N , UP , N , N , N , LEFT , N }, { N , N , N , N , N , N , N , N , N , N , DOWN , N , N , N , N , N , LEFT }, { N , N , N , N , N , LEFT , N , N , N , N , N , N , N , N , N , N , N }, { N , N , N , N , N , N , N , UP , N , N , N , N , N , N , N , N , N }, { N , N , N , N , N , N , N , N , N , RIGHT , N , N , N , N , N , N , N }, { N , N , N , N , N , N , N , N , N , N , RIGHT , N , N , N , N , N , N }, { N , N , N , N , N , N , N , N , N , N , N , RIGHT , N , N , N , N , N } }; }; the problem arises when i call the get and set functions: void Map::setAL(int a, int b, bool w) { adjacency_list[a][b] = w; } bool Map::getAL(int a, int b) { bool c = adjacency_list[a][b]; return c; } bool *Map::getAL() { return adjacency_list; } direction Map::getDirection(int a, int b) { direction dir = directions[a][b]; return dir; } and the compiler shows up the errors: error C2065: 'adjacency_list' : undeclared identifier error C2065: 'directions' : undeclared identifier | |
| guestgulkan (1302) | |
| I'm sure that if you gave that code to the compiler - It will give a lot more errors than the two you have told us. To start: 1. You cannot initialize arrays inside a class declaration . | |
| mo327 (5) | |
| is that true for all types of variables or just arrays? how should i initialize them? should i initialize them in the constructor? any other obvious errors in my code? | |
| Bazzy (4120) | |||
| |||
| hannes (65) | |
| you can't initialize members in your class definition. | |
This topic is archived - New replies not allowed.
