Wertübergabe
-
Hallo,
ich möchte einer Funktion einen Integer-Wert übergeben ( class Kette() ):
int d; cout<<"Bitte Wert des neuen ersten Elementes eingeben ";cin>>d; Kette::anfangEinf(d)
In der Methode brauche ich aber einen Zeiger auf diesen Int-Wert:
static void anfangEinf(int b) { // hier möchte ich einfügen?!?!?!? Kette* p = start; start = b; }
(so funktioniert es ja nicht)
damit ich diesen Wert am Anfang meiner verketteten Liste einfügen kann. Hat jemand eine Idee?
Hoffe auf Hilfe,Gruß
Alexander
-
dum di dum
MfG SideWinder
-
Damit du etwas in deine Liste einfügen kannst benötigst du vor allem eines: Ein eigenes Objekt.
Wenn du bloß eine Variable übergibst (und sei es nun auch ein Pointer) wird der sobald er seinen Gültigkeitsbereich verliert gelöscht und deine Liste crashed beim nächsten Durchlauf.
Abgesehen davon: Warum ist dein insert static?
void Kette::insert (int wert) { int* wert_mit_dauerhaftem_speicher = new int; *wert_mit_dauerhaftem_speicher = wert; // Jetzt in die Liste einfügen oder sonstwas damit tun } Kette::~Kette () { // Hier Liste durchlaufen und brav jedes Element auch wieder freigeben: delete runner; }
MfG SideWinder
-
Vielen Dank, nur sieht mein Konstruktor ein wenig anders aus, da er zum Aufbauen der Liste benutzt wird:
//Konstruktor Kette(int werta) { counter++; a = werta; // Verkettete Liste if (start) { ende->next = this; ende = this; } else { start = this; ende = this; } this->next = NULL; }
und in int main() baue ich zuerst eine Kette auf, in welche ich dann einfügen möchte.
Kette objekt1(3); Kette objekt2(4); Kette objekt3(8);
Ich benutze static, damit ich die Funktion über
Kette::anfangEinf(d)
aufrufen kann.
GrußAlexander