static-Block
-
In Java kann man in eine Klasse einen static-Block machen,
der einmal ausgeführt wird wenn die Klasse geladen wird.Gibt es sowas in C++ auch?
Wenn ja:
Wie geht das?Gruß,
CSpilleAchso nochwas: Wo sollten Konstanten deklariert werden? Im Header oder in der Implementierung?
-
Wann wird in C++ eine Klasse denn geladen?
Denk darüber nach und finde die Antwort selber
-
In der Regel beim Start des Programmes...
Aber QT hat ne Möglichkeit Klassen nachträglich zu laden:
http://doc.trolltech.com/3.3/qlibrary.htmlIch hoffe meine Frage ist jetzt nicht mehr ganz so dumm
-
CSpille schrieb:
In der Regel beim Start des Programmes...
Exakt.
Aber QT hat ne Möglichkeit Klassen nachträglich zu laden:
http://doc.trolltech.com/3.3/qlibrary.htmlNicht nur Qt hat das.
Aber wenn eine DLL dynamisch geladen wird, unterscheidet sich das kaum von dem starten eines Programmes
wir können also sagen: beim starten des Programmes werden die Klasse 'initialisiert' wenn man so will.
Nun, was wird denn beim starten des Programmes noch so alles ausgeführt?
Globale Objekte werden erstellt. Man kann also ein globales Objekt erstellen und im Ctor die gewünschten initialiserungen vornehmen.
-
hmm...
Stimmt: Wie konnte ich die statischen Objekte vergessen?
Meiner Meinung nach ist es etwas dirty, ein statisches Objekt zu erstellen,
das nie verwendet wird, um eine Initialisierung durchzuführen...Aber ist erstmal ne Lösung...
thx
-
CSpille schrieb:
Meiner Meinung nach ist es etwas dirty, ein statisches Objekt zu erstellen,
das nie verwendet wird, um eine Initialisierung durchzuführen...Ist aber gängig.
Du packst es in einen unnamed namespace in einer .cpp Datei und es ist von aussen unsichtbar.