[nierozwiązane] volatile: pytania teoretyczne

0

Mam kilka pytań dotyczących funkcji składowych klasy opatrzonych modyfikatorem volatile. Chodzi o to, że nie potrafię pojąć sensu takich funkcji.

Czy wywołanie zwykłych funkcji składowych obiektu volatile spowoduje pozbawienie go ulotności?

W jaki sposób, wewnątrz funkcji, można naruszyć ulotność obiektu na którym wywoływana jest funkcja?

W stosunku do stałych wszystko jest logiczne, ale tutaj mam pewne wątpliwości i nie mogę przejść dalej nie zaspokajając ciekawości :)
Z góry dziękuję za odpowiedzi.

Dorzucam jedno pytanie, które możliwe jest odpowiedzią na 2 poprzednie: Czy chodzi tylko o zabezpieczenie przed pozbawieniem ulotności obiektu poprzez rzutowanie?

0

Słówko volatile używamy jeśli wartość zmiennej może być zmieniona spoza programu. Volatile daje gwarancje, że nie zostaną na zmiennej wykonane żadne optymalizacje, np przy dwukrotnym odczytaniu zmiennej volatile będzie ona faktycznie dwukrotnie odczytana, a nie np tylko raz z powodu optymalizacji.
Jeśli obiekt pewnej klasy jest zadeklarowany jako volatile to można używać tylko tych metod, które są volatile (podobnie jak z const'em).

0

Jeśli obiekt pewnej klasy jest zadeklarowany jako volatile to można używać tylko tych metod, które są volatile (podobnie jak z const'em).
No dobrze, ale dlaczego? W przypadku const jest to oczywiste - chodzi o zabezpieczenie przed zmianą obiektu, ale co w przypadku volatile? W jaki sposób można pozbawić obiekt ulotności wewnątrz funkcji?

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