Zeiger auf Ende einer Objektkette setzen



  • Ahh nice, danke @CTecS und @manni66 - wusste nicht, dass ich das trotzdem mit a:: deklarieren muss, aber ergibt Sinn ...

    Jetzt habe ich das Private/Public Problem nicht mehr und es scheint zu laufen. Das einzige Problem ist nur, dass bei der Ausgabe nun nur das letzte Element erscheint und nicht die ganzen anderen, die ich vorher angehängt habe.

    Zwei Möglichkeiten mit denen ich experimentiere grade:

    1. in "int main();"(edited)
    // Bekomme die Meldung, dass "endeDerListe" hier nicht initialisiert ist
    // lege also fest:
        // Erster Eintrag
        anfangDerListe = new a();
        anfangDerListe->ersterEintrag("0");
        endeDerListe = anfangDerListe; //hier versucht, den Zeiger zu kopieren
        // Weitere anhaengen - hier bekomme ich die Fehlermeldung
        // von 2) oben
        endeDerListe = endeDerListe->listeErweitern("1", endeDerListe);
        endeDerListe = endeDerListe->listeErweitern("2", endeDerListe);
        endeDerListe = endeDerListe->listeErweitern("3", endeDerListe);
        endeDerListe = endeDerListe->listeErweitern("4", endeDerListe);
    
    // Das führt dazu, dass beide Zeiger die gleiche Adresse haben, somit
    // behaelt "anfangDerListe" nicht seinen Wert und übernimmt stets den
    // von "endeDerListe"
    
    1. endeDerListe nicht festlegen nach dem initialisieren, was mir leider gar keine Ausgaben liefert

    Habt ihr Ideen, wie ich "endeDerListe" vernünftig initialisieren / festlegen kann, damit nur "endeDerListe" weiterwandert und "anfangDerListe" auf dem ersten Element bleibt?

    Vielen Dank nochmal für eure Hilfe, hat mir bisher schon viel geholfen. Lieber Gruß.



  • @Masch sagte in Zeiger auf Ende einer Objektkette setzen:

    , endeDerListe)

    Warum existiert das noch?



  • @manni66 - ich hatte versucht den Parameter rauszunehmen, dann hatte ich aber ein Problem mit dem Return Value von "listeErweitern()". Wenn ich das Listenende nicht in den Parameter reinschleuse, was kann "listeErweitern()" dann zurückgeben um es "endeDerListe" in main zuzweisen?



  • @Masch sagte in Zeiger auf Ende einer Objektkette setzen:

    was kann "listeErweitern()" dann zurückgeben um es "endeDerListe" in main zuzweisen?

    naechsterEintrag, wie von @Schlangenmensch schon vor vier Stunden gezeigt?



  • @manni66 niiiiice! Sorry, die Befehle haben sich ein paarmal geändert - hab den Vorschlag von @Schlangenmensch übernommen (zusätzlich zu dem restlichen Skript von vorher) und läuft ... Hammerhart.

    Werde gleich meine Beschwerde einreichen, dass mir ineffektives Coding beigebracht wird und ich unzählige Stunden an der Lösung verschwendet habe (größtenteils leider wirklich wegen meines Fehlers mit "a* a::listeErweitern" <- das mit dem a::)

    Euch allen vielen vielen Dank für eure Hilfe, ihr habt mir viele weitere Stunden kniffelei und großes Kopfzerbrechen erspart. 🙏


Anmelden zum Antworten