Globale Objekte, warum nicht?



  • Nur fundamentale Typen als globale Variablen? Was war da schon wieder der Grund? 😕



  • Tipp: Die Forensuche funktioniert wieder richtig gut...



  • Als universelle Regel ist mir das nicht bekannt, aber man kann das sicher rechtfertigen. Variablen mit primitivem Typ und mit statischer Speicherdauer (das umfasst auch globale Variablen) werden beim Programmstart mit 0 initialisiert. Objekte mit Konstruktoren zwar auch, aber wann genau der Konstruktor läuft ist nicht eindeutig definiert. Wenn man also in einem solchen Konstruktor ein anderes globales Objekt verwendet, kann es sein, dass dieses noch nicht konstruiert wurde. Die Konstruktionsreihenfolge ist nur innerhalb einer Übersetzungseinheit definiert, nicht aber über mehrere Übersetzungseinheiten hinweg.
    Spiegelbildlich gilt das gleiche für die Destruktoren.



  • Ah, ich glaube das ist genau das, was ich irgendwo im Hinterkopf hatte. Danke für's Erinnern. 👍


Anmelden zum Antworten