Skip to content
EntityQ7915733· pop 5· linked from 21 articles

przesłanianie

Sign in to save

Also known as shadowing

preferowanie odwołań do obiektu (zmiennej, podprogramu, itp.) lokalnego dla danego bloku od odwołań do obiektu zewnętrznego

Article · Polski

Przesłanianie w programowaniu, to właściwość występująca w językach programowania, polegająca na tym, iż deklarowany i definiowany w pewnym bloku (np. podprogramie, instrukcja blokowej itp.) obiekt lokalny (np. stała, zmienna, podprogram itp.), o nazwie (identyfikatorze) identycznym z pewnym obiektem zewnętrznym (globalnym), staje się w tym bloku widoczny i wszystkie odwołania występujące w kodzie źródłowym realizowane za pomocą wybranej nazwy w obrębie tego bloku, są kierowane do obiektu lokalnego (element przesłaniający), natomiast obiekt zewnętrzny staje się w danym bloku niewidoczny, tzn. nie można się do niego odwołać wprost, za pomocą jego nazwy (element przesłaniany). Można się do obiektu globalnego odwołać jedynie za pomocą innych konstrukcji językowych, o ile są w danym języku programowania dostępne, takich jak wskaźniki, selekcje, przemianowania, nakładanie zmiennych, itp. Nowo zdefiniowany obiekt lokalny przesłaniający element zewnętrzny, może mieć całkowicie inne znaczenie i atrybuty – jest całkowicie nowym obiektem programu istniejącym niezależnie i w sposób niezwiązany z wcześniej utworzonym obiektem zewnętrznym. Charakterystyczną cechą elementów przesłaniających jest to, że ich czas istnienia jest krótszy niż elementu przesłanianego (pewnym wyjątkiem są elementy statyczne, np. zmienna statyczna). Przykłady: W powyższych programach realizujących podobny przebieg, wypisany zostanie komunikat: a=1, bez względu na wartość wczytaną w podprogramie get_a, gdyż podprogram ten wczyta daną do zmiennej lokalnej, która przesłania w bloku tego podprogramu zmienną globalną o tym samym identyfikatorze, natomiast w podprogramie głównym odwołanie następuje do zmiennej globalnej, której przypisano wartość 1 – w podprogramie głównym nie zdefiniowano lokalnej zmiennej o tym identyfikatorze, a więc w podprogramie głównym nie nastąpiło przesłonięcie zmiennej globalnej. Jednakże dla języka C istnieje metoda "dostania się" do zmiennej globalnej 'a'. Należy zdobyć adres zmiennej 'a', następnie skorzystać ze wskaźnika o innej nazwie. W takowy sposób ze środka funkcji get_a otrzymamy dostęp do zmiennej globalnej 'a'.

Abstract from DBpedia / Wikipedia · CC BY-SA

Available in 5 languages

via Wikidata sitelinks · CC0

Connections

Categories