Liste voll, Liste leer



  • Ich habe eine Klasse vereinbart und eine Methode geschrieben, in der ich eine Liste verwenden will, um Objekte dieser Klasse zu verwenden.
    Vereinbart sind (als Beispiel):

    static list <TDing> DingList;          
    static list <TDing>::iterator DingNr;
    

    Wenn ich in einer Funktion die Liste mit einigen Elementen fülle, lassen sie sich auch am Ende anzeigen. Verlasse ich die Funktion (die in einem CPP-Modul steht) und wechsle in eine andere Funktion (die sich auch in einem anderen CPP-Modul befindet), ist die Liste LEER. 😕

    Eigentlich unverständlich, denn habe ich nicht die Variblen GLOBAL vereinbart?



  • George3D schrieb:

    Eigentlich unverständlich, denn habe ich nicht die Variblen GLOBAL vereinbart?

    Nein, Du hast sie STATIC, um mal bei Deiner Schreibe zu bleiben, gemacht.

    Trotzdem verstehe ich Dein programm noch nicht ganz. Was steht in welchen Dateien? Minimalbeispiel?



  • Eigentlich unverständlich, denn habe ich nicht die Variblen GLOBAL vereinbart?

    static heist "Modulelokal". Also ist das genau das Verhalten das man mit static bezeckt.



  • Kennst du den Unterschied zwischen call by value und call by reference?



  • Ich kenne den Unterschied, aber da wäre schon meine nächste Frage: Wie kann ich die obengenannte Liste (oder eine Liste dieser Art) als REFERENZ an eine Funktion übergeben? Womit ja das Thema "Globalisierung" gelöst wäre, weil man den Listeninhalt sozusagen als Variablenparameter beliebig von Modul zu Modul transportieren könnte.

    Trotzdem bleibt die andere Frage: Wie vereinbare ich alles übergreifende komplexere Variablen (z.B. als Felder oder Listen), deren Gültigkeit/Lebensdauer sich über sämtliche Module erstreckt?


Anmelden zum Antworten