|
| mo327 (5) | |
| Hello, I have been trying to compile and run a relatively simple program using Microsoft Visual Studio 2008. However the following error message pops up. What should i do? error LNK2019: unresolved external symbol "public: void __thiscall Map::setDirection(short (* const)[17])" (?setDirection@Map@@QAEXQAY0BB@F@Z) referenced in function "public: __thiscall Map::Map(void)" (??0Map@@QAE@XZ) (source code) --------- class Vertex { public: color c; // color short d; // distance short n; // number Vertex *p; // predecessor private: }; class Map { public: Map(); void setAL(int a, int b, bool w); void setAL(bool[17][17]); void setDirection(short[17][17]); short getDirection(int a, int b); Vertex vertex[17]; void BFS(Vertex &s); private: void initializeJunctions(); bool adjacency_list[17][17]; short directions[17][17]; }; #endif ---------- #include "Map.h" Map::Map() { setAL(adjacency_list); setDirection(directions); } void Map::setAL(int a, int b, bool w) { adjacency_list[a][b] = w; } void Map::setAL(bool a[17][17]) { bool b[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 } }; for(int i = 0; i < 17; i++) { for(int j = 0; j < 17; j++) { a[i][j] = b[i][j]; } } } void setDirection(short a[17][17]) { short b[17][17] = { { 0 , 4 , 0 , 0 , 0 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 2 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 2 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 1 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 4 , 0 , 1 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 3 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 0 , 0 , 0 }, { 1 , 0 , 0 , 0 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 4 , 0 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , 3 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 0 , 1 , 0 , 0 , 0 , 2 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 0 , 1 , 0 , 0 , 0 , 2 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 2 }, { 0 , 0 , 0 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 }, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 0 , 0 , 0 , 0 } }; for(int i = 0; i < 17; i++) { for(int j = 0; j < 17; j++) { a[i][j] = b[i][j]; } } } short Map::getDirection(int a, int b) { short dir = directions[a][b]; return dir; } void Map::BFS(Vertex &s) // Breadth First Search. G[] is graph, s is position. { int num; queue<Vertex> Q; Vertex *Ptr; s.c = GRAY; s.d = 0; initializeJunctions(); Q.push(s); while(!(Q.empty())) { Ptr = &Q.front(); Q.pop(); num = Ptr->n; for(int n = 0; n < 17; n++) { if(adjacency_list[n][num] == 1) { if(vertex[n].c == 0) { vertex[n].c = GRAY; vertex[n].d = Ptr->d + 1; vertex[n].p = Ptr; Q.push(vertex[n]); } } } Ptr->c = BLACK; } } void Map::initializeJunctions() { for(int i = 0; i < 17; i++) { vertex[i].c = WHITE; vertex[i].d = -1; vertex[i].n = i; vertex[i].p = &vertex[i]; } } ---------- #include <iostream> #include <stack> #include "Map.h" using namespace std; stack< Vertex > path; void makePath(Vertex &t, Vertex &s); int main() { Map map; map.BFS(map.vertex[12]); // makePath(map.vertex[1], map.vertex[12]); return 0; } void makePath(Vertex &t, Vertex &s) { Vertex *Ptr; Ptr = &t; while(Ptr->n != s.n) { path.push(*Ptr); Ptr = Ptr->p; } } | |
| guestgulkan (1040) | |
| You need to write the code for the SetDirection member function for the Map class - the compiler is complaining that it is missing. | |
Last edited on | |
| Bazzy (3183) | |||||
The errors I can see are:
| |||||
Registered users can post in this forum.
