Mehrere Objekte in einem Array zusammenfassen?
-
Hi, mein Hauptproblem ist simpel. Ich habe keine Ahnung^^.
Aber folgendes: Ich arbeite mit Omnet++ und komme leider doch nicht umhin, manche Funktionen etwas anzupassen. Daher muss ich leider mit einer Anfängerfrage kommen:
Gemäß Manual, habe ich z.B. folgende Zeilen
cTopology::LinkOut *path0 = tempnode->getPath(0); [...] cTopology::LinkOut *path1 = tempnode->getPath(0);
Das Funktioniert soweit auch, was ich schon für ein Wunder halte^^
Ich möchte jetzt path0, path1 usw. "zusammenfassen", so dass ich die mit path[Pfadnummer] ansprechen kann. Nur stell ich mich dazu zu doof an, was daran liegt, dass ich das ganze mit Klassen/Objekten/Zeigern. nicht verstanden habe.
Meine "Versuch" sieht bisher wie folgt aus:
cTopology::LinkOut *path = new cTopology::LinkOut[10](); path[0] = tempnode->getPath(0);
Ihr "seht" es bestimmt schon, das funktioniert so nicht.
Daher meine Frage: Wie wird das korrekt gemacht?
-
#include <vector> // ... std::vector<cTopology::LinkOut*> paths; paths.push_back(tempnode->getPath(0)); // paths[0] ist nun das Ergebnis von tempnode->getPath(0) // ... paths.push_back(tempnode->getPath(0)); // paths[1] ist das Ergebnis des erneuten tempnode->getPath(0)
-
nimm
std::vector
aus der STL, das erspart dir viel Ärger.
-
Korrekt wird es so gemacht. Aber wenn ich mir deine Codezeilen so anschaue, ahne ich böses, da müsste man wohl viel weiter vorne ansetzen, um sauberen C++ Code zu erhalten. Dennoch, versuch es mal so:
std::vector<cTopology::LinkOut*> paths; paths.push_back( tempnode->getPath(0) ); paths.push_back( tempnode->getPath(1) ); paths[0]; paths[1];
-
out schrieb:
Korrekt wird es so gemacht. Aber wenn ich mir deine Codezeilen so anschaue, ahne ich böses
Da Ahnst zu ziemlich sicher ziemlich richtig^^
Aber Danke an alle, ich denke damit kann ich was Anfangen. Wenn nicht, meld ich mich nochmal