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?