Statické (klíčové slovo) - Static (keyword)
tento článek chybí informace o použití statického klíčového slova k deklaraci metod třídy v C ++ a Java.Dubna 2014) ( |
V některých programovací jazyky jako C (a jeho blízcí potomci jako C ++, Cíl-C, a Jáva ), statický
je vyhrazené slovo ovládání obou životností (jako a statická proměnná ) a viditelnost (v závislosti na vazba ). Účinek klíčového slova se liší v závislosti na podrobnostech konkrétního programovacího jazyka.
Běžné chování v C / C ++
V C a C ++ je účinek statický
klíčové slovo v C závisí na tom, kde k deklaraci dochází.
statický
může působit jako třída skladování (nezaměňovat s třídy v objektově orientovaném programování ), jako jsou externí
, auto
a Registrovat
(což jsou také vyhrazená slova). Každá proměnná a funkce má jednu z těchto tříd úložiště; pokud deklarace neurčuje třídu úložiště, použije se výchozí nastavení závislé na kontextu:
externí
pro všechna prohlášení nejvyšší úrovně ve zdrojovém souboru,auto
pro proměnné deklarované v tělech funkcí.
Třída skladování | Život | Viditelnost |
---|---|---|
externí | provádění programu | externí (celý program) |
statický | provádění programu | interní (překladová jednotka pouze) |
auto , Registrovat | provedení funkce | (žádný) |
V těchto jazycích má termín „statická proměnná“ dva významy, které lze snadno zaměnit:
- Proměnná se stejnou životností jako program, jak je popsáno výše (nezávislá na jazyce); nebo
- (Specifické pro rodinu C) Proměnná deklarovaná s třídou úložiště
statický
.
Proměnné s třídou úložiště externí
, které zahrnují proměnné deklarované na nejvyšší úrovni bez explicitní třídy úložiště, jsou statický
v prvním smyslu, ale ne ve druhém.
Statická globální proměnná
Proměnná deklarovaná jako statický
na nejvyšší úrovni zdrojového souboru (mimo jakékoli definice funkcí) je viditelný pouze v celém tomto souboru ("rozsah souboru ", také známý jako "vnitřní propojení "). Při tomto použití klíčové slovo statický
je známý jako „specifikátor přístupu ".
Statická funkce
Podobně statická funkce - funkce deklarovaná jako statický
na nejvyšší úrovni zdrojového souboru (mimo všechny definice tříd) - je viditelný pouze v celém tomto souboru ("rozsah souboru ", také známý jako "vnitřní propojení ").
Statické lokální proměnné
Proměnné deklarované jako statický
uvnitř funkce jsou staticky přiděleny, takže si udržují svou paměťovou buňku po celou dobu provádění programu, přičemž mají stejný rozsah viditelnosti jako automatické lokální proměnné (auto
a Registrovat
), což znamená zůstat pro funkci místní. Proto jakékoli hodnoty, které funkce vkládá do svých statické lokální proměnné během jednoho hovoru bude stále přítomen, když bude funkce znovu vyvolána.
C ++ specifické
Statické členské proměnné
v C ++, členské proměnné deklarovány jako statický
uvnitř definice třídy jsou proměnné třídy (sdíleno mezi všemi instancemi třídy, na rozdíl od proměnné instance ).
Statická metoda
Podobně, a statická metoda - metoda deklarovaná jako statický
uvnitř definice třídy - má být relevantní pro všechny instance třídy, spíše než pro jakoukoli konkrétní instanci. Metoda deklarovaná jako statický
lze volat bez intanstrating třídy.
Jáva
Tato sekce potřebuje expanzi. Můžete pomoci přidávat k tomu. (Duben 2020) |