Konstruktionszeitpunkt statischer Membervariablen
-
Angenommen ich habe eine Klasse Alpha mit einem Defaultkonstruktor und folgende Klasse Beta:
// Beta.hpp #include "Alpha.hpp" class Beta { static Alpha _myAlpha; }; // Beta.cpp Alpha Beta::_myAlpha; // [..]
Zu welchem Zeitpunkt wird der Konstruktor von Alpha aufgerufen? Bevor main ausgeführt wird? Gar nicht? Oder ist das Compilerabhängig?
-
Nahc meinem Verständnis sollte das im main vor deinem code passieren.
Wenn du die Klasse nicht benutzt dürfte ein schöauer compiler sie rausoptimieren...
-
Du hast Recht. Ich habe gerade die Bestätigung im Stroustroup (The C++ Programming Language | ISBN: 0201889544) gefunden (Kapitel 10.4.9 "Nonlocal store").