Hallo Leute,
ich habe ein kleines Problem.
In meinem Objekt "MapCoordinate" habe ich eine int-Variable welche ich nun über einen Setter ändern will.
Der Zugriff erfolgt über einige andere Objekte.
Ich befinde mich in der Klasse "MapGenerator" und will über die Objekte "Map" -> "MapLayer" -> "MapCoordinate" die Variable ändern.
Es kommt keinerlei Fehlermeldung, allerdings ist die Variable unverändert, wenn ich Sie über den Getter aufrufe.
Hier nun die entsprechenden Code Ausschnitte:
MapCoordinate.h
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#ifndef MAPCOORDINATE_H
#define MAPCOORDINATE_H
class MapCoordinate
{
public:
MapCoordinate();
int getUndergroundID();
void setUndergroundID(int i);
int getFunctionID();
void setFunctionID(int i);
int getXCoord();
void setXCoord(int i);
int getYCoord();
void setYCoord(int i);
private:
int undergroundID;
int functionID;
int x;
int y;
};
#endif
|
MapCoordinate.cpp (Ausschnitt)
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
|
int undergroundID;
// 0 = undefined, 1 = wall, 2 = room, 3 = floor, 4 = water, 5 = puddle
int MapCoordinate::getUndergroundID()
{
return undergroundID;
}
void MapCoordinate::setUndergroundID(int i)
{
undergroundID = i;
}
|
MapLayer.cpp (Ausschnitt) enthält zweidiemensionales Array aus MapCoordinate-Objekten
|
C-/C++-Quelltext
|
1
2
3
4
|
MapCoordinate MapLayer::getCoord(int x, int y)
{
return progressLayer[x][y];
}
|
Map.cpp (Aussschnitt) enthält Array aus MapLayer-Objekten
|
C-/C++-Quelltext
|
1
2
3
4
|
MapLayer Map::getLayer(int i)
{
return progressMap[i];
}
|
Versuchter Zugriff (MapGenerator.cpp)
|
C-/C++-Quelltext
|
1
2
|
currentLayer.getCoord(3, 3).setUndergroundID(1);
std::cout << "ID" << currentLayer.getCoord(3, 3).getUndergroundID() << std::endl;
|
Obwohl ich die ID auf 1 ändere, gibt der Getter die 0 aus.
Ich habe leider überhaupt keine Idee woran es liegen kann. Ich nehme nur an, dass ich einen Fehler mit Zeiger oder nicht Zeiger gemacht habe.
Hat jemand einen Ansatz?
Danke.
Henrik