15.2 Metody ulotne

Metody klasy mogą też być zdeklarowane jako metody ulotne (ang. volatile). Tak jak metody stałe „obiecują”, że nie zmienią stanu obiektu, na rzecz którego zostały wywołane, tak funkcje ulotne obiecują, że przy dostępie do składowych nie będą stosowane żadne optymalizacje, polegające na przykład na pamiętaniu wartości składowej w pamięci podręcznej (ang. cache) lub rejestrze procesora przed ponownym użyciem. Każde odwołanie się do składowej obiektu połączone będzie z odczytaniem na nowo jej aktualnej wartości, a modyfikacja wartości składowej wykonywana będzie natychmiast, bez ewentualnego buforowania. Z takich metod korzysta się rzadko, najczęściej wtedy, gdy stan obiektu może być zmieniony przez czynniki zewnętrzne, nieznane programowi. Taka asynchroniczna zmiana danych może mieć miejsce, na przykład, na skutek dołączenia do komputera jakichś czujników czy mierników pracujących w trybie on line lub, jeszcze częściej, na skutek uruchomienia funkcji obsługi sygnałów czy też na skutek wielowątkowości programu.

Składnia definiowania metod ulotnych jest dokładnie taka sama jak składnia definiowania i deklarowania metod stałych; należy tylko słowo kluczowe const zastąpić słowem kluczowym volatile. Metoda może być jednocześnie stała i ulotna.

Podobnie jak w przypadku modyfikatora const, modyfikatora volatile nie można użyć w odniesieniu do konstruktora.

T.R. Werner, 25 lutego 2017; 22:31