Hi,
Ich habe heute mein aktuelles Projekt wieder ein bisschen redesigned und dabei einigen Klassen eine statische variable verpasst. diese variable sollte eigentlich nur ein mal gesetzt werden und "klassenspezifisch" gefüllt werden. Für das "füllen" der variable hab ich also eine statische methode eingebaut, die dann das passende objekt (bzw einen pointer darauf) zurückliefert. So in der Art also:
Type* Class::staticVar = Class::staticMethod();
Wenn ich mich nicht irre gibt es keine andere Möglichkeit eine statische variable zu definieren/initialisieren, als global. Mein Problem ist jetzt, dass dieser globale code wohl direkt am anfang des programmstarts ausgeführt wird (noch vor main()), allerdings braucht die statische methode u.a. einen OpenGL context, sonst funktioniert sie nicht
. Natürlich gäbe es die möglichkeit der variable erstmal nen nullpointer zu verpassen, zu warten bis im "richtigen" code ein context erzeugt wurde und dann den richtigen pointer der methode zuzuweisen. Allerdings stellte sich mir jetzt die frage, in welcher reihenfolge denn dieser globale code ausgeführt wird, wenn man seinen code jetzt z.B. auf mehrere klassen und damit auf mehrere .cpp dateien verteilt hat. Kann man die Reihenfolge überhaupt beeinflussen?