Kompilacja a pamięć

Odpowiedz Nowy wątek
2015-01-19 08:38
0

Witam, mam pewnie dosc prymitywne i abstrakcyjne pytanie, ale ciekawi mnie jedna kwestia. Jesli chcemy zmienic wartosc prywatnego pola w klasie, nie korzystajac z metod skladowych klasy to kompilator zarzuci nam, ze nie mozna tego zrobic - wszystko jasne. Ale dlaczego w momencie przekazania adresu danego, prywatnego pola do jakiejs zmiennej poza klasa, jest mozliwa jego modyfikacja? Jak dokladnie reaguje kompilator?

Pozostało 580 znaków

2015-01-19 09:02

Nijak.

private chroni tylko składniki klasy. Ten wskaźnik, który zwrócisz, nie jest składnikiem klasy. Pokazuje na składnik, ale nim nie jest. "Pokazywania" nikt nie chroni.


"(...) otherwise, the behavior is undefined".

Pozostało 580 znaków

2015-01-19 09:25
0

no tak, jest to dosc oczywiste i logiczne:) dzieki za wyjasnienie:)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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