Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hallo liebe gemeinde!

ich hab eine kleine clist-verwirrung am start:

ich speichere objekte in einer CList. die hab ich per typedef definiert.

eine andere klasse bekommt einen pointer von so einer liste und legt selbst noch eine objekt einer solchen liste an.

das objekt wird zur erstellungszeit mit kopien gefüttert.

jetzt folgendes problem:

wenn ich mir die beiden startadressen ausgeben lasse:

pointer: 12fe94

objekt: 12fe78

wenn ich mir aber jeweils die GetHeadPosition ausgeben lasse:

pointer: 32571c

objekt: 32571c

=> beide listen haben dieselben objekte inne.

warum verhält sich das so? ist mir unverständlich!

hab schon 1000 mal den code angeschaut. ich verbandel die eigentlich nirgends!

Geschrieben

aaalso, dann schmeiß ich mal mit bissl code rum:

das ganze soll ein rekursiver pfadfinder sein.

durch linksklick erzeuge ich eine "stadt" vom typ MyCity, wenn ich zwei städte hintereinender markiere, erzeuge ich eine MyRoad, die 2 citys verbindet.

MyCity hat als member

CPoint location

inr nr //städte haben keine namen, nur nummern!

MyRoad hat als member

MyCity* start

MyCity* ende

int nr //bei mir gibts auch keine straßennamen, nur nummern!

die klasse mit den listen heißt Search

typedef CList <MyRoad, MyRoad> RoadList;

vor der rekursion muß noch vorarbeit geleistet werden. funktion heißt:

void PrepareWork(Search::RoadList* _allRoads, Search::RoadList *_walkedWays, int _startcity, int _endcity);

_allRoads sind ALLE straßen auf meiner karte.

_walkesWays sind die abgelaufenen straßen, die ich nicht mehr benützen darf. rückwärtslaufen ist schwachsinn.

in die prepare-funktion kommt als 2. argument eine neu erstellte liste von RoadList.

wenn ich mir in der prepare-func die HeadPositionAdressen ausgeben lasse, sind beide gleich. lasse ich mir vor dem Prepare-aufruf nocheinmal die anzahl der obj. und HeadPosAdressen ausgeben sind sie unterschiedlich?!?!

falls du mehr input brauchst, sag nur!

Geschrieben

eieieieieiei

ne, ich bin doch schuld, nicht c++.

bin mit meinen eigenen namen durcheinendergekommen und hab die ganz komisch in inline-funktionen rumgeschoben. ergebnis war, das die listen dann echt gleich waren!

mein fehler!

bigredeyes

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...