Inicjalizacja stałej statycznej klasy

0

Mam w klasie stałą statyczną zadeklarowaną w pliku nagłówkowym jako static const sf::Color DEFAULT_MASK_COLOR; i zdefiniowaną w źródłowym jako
const sf::Color TexturedHex::DEFAULT_MASK_COLOR = sf::Color(255, 255, 255, 255);
Stałej używam w konstruktorze do domyślnego definiowania pola klasy.
Konstruktor: TexturedHex(float edge = Hex::DEFAULT_EDGE, sf::Color color = TexturedHex::DEFAULT_MASK_COLOR);

W trakcie działania programu dwa razy (w różnych plikach) tworzę obiekt tej klasy jako statyczne pole (static TexturedHex hex_style;)
Problem polega na tym, że za pierwszym stworzeniem obiektu klasy zamiast spodziewanej wartości RGB(255,255,255) otrzymuje RGB(0,0,0) w konstruktorze. Za drugim razem działa poprawnie.
Jak rozwiązać ten problem? Czy inicjalizacja stałej statycznej nie jest zagwarantowana przed inicjalizacją jakiejkolwiek innej zmienej?

4

Jeśli inicjalizujesz przed wejściem do funkcji main to kolejność nie jest gwarantowana pomiędzy różnymi TU (dla uproszczenia - pomiędzy różnymi plikami .cpp)

1 użytkowników online, w tym zalogowanych: 0, gości: 1