static c
Pomen in uporaba statike v jeziku C ++ s primeri.
V prejšnjih temah o razredih shranjevanja smo se seznanili z besedo static. Spoznali smo statične spremenljivke, ki so deklarirane v programu C ++. Vemo, da se statične spremenljivke inicializirajo samo enkrat in ohranijo vrednost v celotnem programu.
Podobno kot statične spremenljivke bomo tudi v tej vadnici uporabo statične ključne besede razširili na:
- Statične spremenljivke člana v razredu
- Predmeti statičnega razreda
- Razred statičnih metod
=> Tukaj si oglejte Vadnice za globoko učenje C ++.
Kaj se boste naučili:
kako odpreti torrent datoteko
- Statične spremenljivke članov v razredu
- Predmeti statičnega razreda
- Statične metode v razredu
- Namen statičnih funkcij
- Zaključek
- Priporočeno branje
Statične spremenljivke članov v razredu
Statična spremenljivka se nikoli ne dodeli skladam. Dodeljen jim je prostor na različnih statičnih shrambah. To pomeni, da ko v razredu razglasimo statično spremenljivko, si to spremenljivko delijo vsi predmeti tega razreda.
Ker se statične spremenljivke inicializirajo samo enkrat in jih delijo vsi predmeti razreda, konstruktor statičnih spremenljivk nikoli ne inicializira. Namesto tega je treba statično spremenljivko izrecno inicializirati zunaj razreda samo enkrat z uporabo operaterja ločljivosti obsega (: :).
Ko je ustvarjen prvi objekt, se vsi statični podatki primitivnega tipa inicializirajo na nič, če ni nobene druge inicializacije.
Preverite naslednji primer, ki prikazuje statično spremenljivko v razredu.
Kot je prikazano v spodnji kodi, imamo statično spremenljivko count kot člana vzorca razreda. Upoštevajte, da smo to spremenljivko izrecno inicializirali zunaj razreda z začetno vrednostjo = 0;
Nato to statično spremenljivko prirastimo v konstruktor razreda.
Oglejmo si primer programa.
#include #include using namespace std; class sample{ int var; static int count; public: sample(int var):var(var){ cout<<'Count = '< Izhod:
Štetje = 0
Štetje = 1
Štetje = 2
V glavni funkciji ustvarimo tri različne predmete. V izhodu vidimo, da se vrednost statične spremenljivke vzdržuje med stvaritvami objektov in se ne ponastavi z vsakim ustvarjanjem predmeta. To je za prvi objekt count = 0. Nato se poveča na 1. Za naslednji objekt count = 1 itd.
Če bi bilo štetje katera koli običajna spremenljivka, bi bil rezultat:
Štetje = 0
Štetje = 0
Štetje = 0
Predmeti statičnega razreda
Tako kot statične spremenljivke članov razreda lahko tudi predmete razreda razglasimo za statične. Objekti statičnega razreda se prav tako inicializirajo le enkrat in ostanejo aktivni v celotnem programu. Ker je objekt uporabniško določen tip, se objekt statičnega razreda inicializira podobno kot običajni predmeti s pomočjo konstruktorja.
angularjs vprašanja in odgovori za izkušene pdf
Vzemimo primer programiranja za boljše razumevanje objektov statičnega razreda.
#include using namespace std; class xyz { int i; public: xyz() { i=0; cout << 'Constructor::xyz'<V tem programu imamo razred xyz s konstruktorjem in destruktorjem. V glavni funkciji razglasimo spremenljivko x = 0; Če je x enako nič, ustvarimo statični objekt razreda xyz.
Program daje naslednje rezultate.
Izhod:
Konstruktor :: xyz
Konec glavnega
Destruktor :: xyz
Običajno bi moral biti rezultat
Konstruktor :: xyz
Destruktor :: xyz
Konec glavnega
Ko pa ustvarjamo statični objekt, ima ta objekt obseg do konca programa in ne takrat, ko objekt izstopi iz obsega (konec stavka if). To je razlog, zaradi katerega se destruktor za objekt obj izvrši šele po koncu glavne funkcije.
Statične metode v razredu
V razredu imamo lahko tudi statične metode. Tako kot statični predmeti in spremenljivke statičnih članov imajo tudi funkcije statičnih članov obseg, dokler se izvajanje programa ne konča.
Ko je metoda razreda razglašena za statično, lahko dostopa samo do statičnih članov, tj. Statičnih spremenljivk in statičnih funkcij razreda. Ne more dostopati do navadnih članov razreda.
Za metode statičnega razreda tudi ni kazalca 'this'.
brezplačen youtube v mp3 pretvornik pregled
Za dostop do statičnih metod razreda lahko uporabimo objekt in operator pike, vendar je za dostop do teh metod priporočljivo uporabiti ime razreda in operater ločljivosti obsega.
Spodaj je primer uporabe statične metode v razredu.
V tem primeru smo definirali dve spremenljivki statičnih članov A in B ter statično metodo printValues. Spremenljivki A in B sta inicializirani na vrednosti 10 oziroma 20. V statični metodi printValues se vrednosti A in B podrejata po Prirast oziroma Predpovečanje. Po tem se vrednosti natisnejo.
V glavni metodi z imenom razreda neposredno pokličemo statično metodo printValues, saj za priklic statičnih funkcij ne potrebujemo nobenega predmeta.
#include using namespace std; class Sample { static int A; static int B; public: static void printValues(){ A++; ++B; cout <<'Value of A: ' << A << endl; cout <<'Value of B: ' << B << endl; } }; int Sample :: A =10; int Sample :: B =20; int main(){ Sample::printValues(); return 0; }
Izhod:
Vrednost A: 11
Vrednost B: 21
Posnetek zaslona istega izhoda je podan spodaj.

Torej v izhodu vidimo, da se vrednosti obeh statičnih spremenljivk spremenita glede na operacije, ki se izvajajo nad njimi.
Namen statičnih funkcij
Ko smo v tej vadnici videli različne uporabe ključnih besed static, ostaja vprašanje, kakšen je namen statičnih funkcij.
Namen statičnih funkcij lahko povzamemo kot spodaj:
- Statične funkcije uporabljamo, kadar ta funkcija ni odvisna od predmeta za klicanje in delo.
- Še en namen uporabe statične funkcije je omejiti njeno uporabo. Za razliko od globalnih funkcij je dostop do statičnih funkcij omejen na datoteko, v katero so nameščene. Tako, da bi omejili dostop do funkcije, jo naredimo za statično.
- Poleg zgornjih dveh razlogov uporabljamo statične funkcije, kadar ne želimo ustvariti predmeta razreda samo za izvajanje funkcije, ki se ne nanaša na člane razreda.
Zaključek
Za zaključek te teme lahko rečemo, da lahko statično ključno besedo v jeziku C ++ na različne načine uporabimo za razglasitev spremenljivk, spremenljivk članov, predmetov razredov, metod itd.
Statičnih funkcij članov in spremenljivk ni treba dostopati s predmetom, temveč jih je mogoče neposredno dostopati z imenom razreda. Prav tako obseg statičnih entitet ostaja ves čas izvajanja programa. Statična ključna beseda se tako lahko uporablja tudi za nadzor dostopa določene entitete.
V naših prihajajočih vajah bomo izvedeli več o nekaterih drugih temah OOP v jeziku C ++.
=> Tukaj si oglejte A-Z o vajah za usposabljanje za C ++.
Priporočeno branje
- Posmehovanje zasebnim, statičnim in praznim metodam z uporabo Mockita
- Statično preskušanje in dinamično preskušanje - razlika med tema dvema pomembnima preskusnima tehnikama
- TOP 40 orodij za analizo statične kode (najboljša orodja za analizo izvorne kode)
- Najboljša BREZPLAČNA vadnica za C #: Ultimate C # Guide za začetnike
- Parametriranje statičnih vrednosti v LoadRunnerju
- Python spremenljivke
- Vrste dedovanja v jeziku C ++
- Spremenljivke v C ++