Wo steckt hier der teufel?
-
Ist vielleicht nicht die astreine bcb frage aber da ich bcb progge und auch die Fehlermeldung vom Bcb kommt:
Ich gehe davon aus dass ich einen Include Fehler begangen habe.
Tile * tmpTile = MapToDraw->GetTileByCityName(cityname);erzeugt bei mir folgende Fehlermeldung
[C++ Fehler] MapView.cpp(1047): E2451 Undefiniertes Symbol 'tmpTile'//zur hilfe;
Mein Programm besitzt Zugriff auf das Objekt 'MapToDraw' der Klasse Map in der
Tile * Tiles[MAX_TILES_X][MAX_TILES_Y];sowohl als auch
Tile * Map::GetTileByCityName(std::string name);deklariert sind.
Die Funktion sieht folgendermassen aus:
Tile * Map::GetTileByCityName(std::string name){ for(int x=0; x<TheMapInfo->GetWidth();x++) for(int y=0; y<TheMapInfo->GetHeight();y++) if(Tiles[x][y]->GetCity() != NULL) if(name == Tiles[x][y]->GetCity()->GetName()){ return Tiles[x][y]; } return NULL; }Ich hab eine Methode die mir eine City auf dem Wege
City * tmp = MapToDraw->GetCityByName(cityname);ruückliefert wenn ich wie oben einfach
return Tiles[x][y]->GetCity();schreibe.
Tile.h ist natürlich im header eingebunden. Und wenn überhaupt, sollte dann nicht soetwas wie "Undefinierter Bezeichner 'Tile" als Error erscheinen?
Könnt ihr mir bitte das Brett vom Kopf klopfen?
Herzlichsten Dank
Grey
-
Die Fehlermeldung ist ja eindeutig: Irgendwo benutzt tu tmpTitle, obwohl es im dort gültigen Scope nicht sichtbar ist.
-
Hmm? Und wie sollte ich das deiner Meinung nach umgehen? Ich benutze ansich keinerlei Namespaces.
Edit:
Sollte dann nach deiner Idee zumidest 'tmpTileasdasgdjahsgdjhsagdas' funktionieren?
Dies tut es leider ebensowenig.
Danke soweit
-
Wie das Ding heißt, ist eigentlich egal. Wichtig ist nur, daß die Definition "Tile* tmpTile=...;" an der Stelle noch gültig ist, wo du etwas damit machen willst. Also zeig doch mal etwas mehr Code

-
Oki, wenn ich vom schaffen komm schau ich mir das nochmal bischen genauer an und poste wenn nötig noch ein bisschen mehr Code.