statyczne pola funkcji

0

http://ideone.com/zY4QaI
Czy jest możliwe, żeby funkcja czyszcze() zmieniła wartość zmiennej a funkcji statyczne() ?

0

Najlepiej przenieś zmienną poziom wyżej, do ciała klasy, wtedy każda metoda tej klasy będzie miała taką możliwość.

0

No tak, ale robi sie nieco burdel w kodzie. Dla klasy zmienna a nic nie znaczy. W ogóle - moim zdaniem to, co chciałbym zrobić jest awykonalne, ponieważ wyłącznie funkcja statyczne () ma dostep do tej zmiennej, ale może o czymś nie wiem.

0

Jeśli nie zwrócisz wskaźnika/referencji do tej zmiennej to jest niemożliwe (pomijając bardzo implementation-dependant sztuczki)

0

Okej, jeszcze jedno pytanie:
http://ideone.com/tubSOa

Ten błąd kompilacji ja rozumiem tak:
w klasie przechowywany jest wskaznik na funkcje. Przy każdym jej wywołaniu, zostaje dołączony obiekt this, wiec wszystko pięknie działa. Jednak deklaracja funkcji jest de facto "poza klasą" (w klasie jest tylko wskaznik), wiec nie mozemy tak tego zrobić. I nic tutaj nie pomoże. Mam rację?

0

jak chcesz coś defaultowo przypisać to musi być to znane podczas kompilacji; dlatego takie coś działa

http://ideone.com/QCIrv5

niech ktoś mnie poprawi jeżeli się mylę

0

@gośćabc : no tak, moim zdaniem masz racje. Twój kod jednak robi coś zupełnie innego niż to, co "miałby robić" mój. Chcę tylko dobrze to zrozumieć.

2

Nie musi: http://melpon.org/wandbox/permlink/yuCLDBe1bBprhQJU

Ten błąd kompilacji ja rozumiem tak:
w klasie przechowywany jest wskaznik na funkcje. Przy każdym jej wywołaniu, zostaje dołączony obiekt this, wiec wszystko pięknie działa. Jednak deklaracja funkcji jest de facto "poza klasą" (w klasie jest tylko wskaznik), wiec nie mozemy tak tego zrobić. I nic tutaj nie pomoże. Mam rację?
W skrócie: Tak. Naprawdę: nie znajduje się poza klasą, ale nie możesz go użyć, bo kompilator nie wie, której instancji użyć (swoją drogą, nie wiem czy coś stoi na przeszkodzie aby to zmienić - chyba nie)

0

No tak, "poza klasą" było w cudzysłowie. Sądzę, że to mogłoby być zmienione w nowej wersji języka, bo obiekt this i tak jest przekazywany do funkcji. Dzięki ; )

0

Pewnie tak, ale to raczej nie jest palący problem, szczególnie, że jego obejście jest trywialne: http://ideone.com/z2jziE

0

No tak, ale znowu - nieco burdel w kodzie.

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