static c
Važnost i upotreba statičkog u C ++ s primjerima.
U našim prethodnim temama o tečajevima pohrane upoznali smo se s riječju static. Doznali smo o statičkim varijablama koje su deklarirane u programu C ++. Znamo da se statičke varijable inicijaliziraju samo jednom i zadržavaju vrijednost u cijelom programu.
Slično statičkim varijablama, u ovom ćemo uputstvu proširiti upotrebu statičke ključne riječi na:
- Statičke varijable člana u klasi
- Objekti statičke klase
- Klasa statičkih metoda
=> Ovdje pogledajte temeljne vodiče za obuku za C ++.
Što ćete naučiti:
- Statičke varijable člana u klasi
- Statički predmeti klase
- Statičke metode u klasi
- Svrha statičkih funkcija
- Zaključak
- Preporučena literatura
Statičke varijable člana u klasi
Statička varijabla nikada se ne dodjeljuje na stogu. Dodijeljen im je prostor na različitim statičkim skladištima. To znači da kada deklariramo statičku varijablu u klasi, tu varijablu dijele svi objekti te klase.
Kako se statičke varijable inicijaliziraju samo jednom i dijele ih svi objekti klase, statičke varijable konstruktor nikada ne inicijalizira. Umjesto toga, statičku varijablu treba eksplicitno inicijalizirati izvan klase samo jednom koristeći operator razlučivosti opsega (: :).
Kada se kreira prvi objekt, svi statički podaci primitivnog tipa inicijaliziraju se na nulu kada nema druge inicijalizacije.
Provjerite sljedeći primjer koji prikazuje statičku varijablu u klasi.
Kao što je prikazano u donjem kodu, imamo statičku varijablu count kao člana uzorka klase. Imajte na umu da smo ovu varijablu inicijalizirali eksplicitno izvan klase s početnom vrijednošću = 0;
Zatim povećavamo ovu statičku varijablu u konstruktoru klase.
Pogledajmo primjer programa.
#include #include using namespace std; class sample{ int var; static int count; public: sample(int var):var(var){ cout<<'Count = '< Izlaz:
Brojanje = 0
Brojanje = 1
Broj = 2
U glavnoj funkciji stvaramo tri različita objekta. U izlazu vidimo da se vrijednost statičke varijable održava između kreacija objekta i da se ne resetira pri svakoj kreaciji objekta. To je za prvi objekt, count = 0. Zatim se povećava na 1. Za sljedeći objekt count = 1 i tako dalje.
Da je brojanje bilo koja uobičajena varijabla, tada bi izlaz bio:
Brojanje = 0
Brojanje = 0
Brojanje = 0
Statički predmeti klase
Baš poput statičkih varijabli člana klase, i objekte klase možemo proglasiti statičkim. Objekti statičke klase također se inicijaliziraju samo jednom i ostaju aktivni tijekom cijelog programa. Kako je objekt korisnički definiran tip, statični objekt klase inicijalizira se slično uobičajenim objektima pomoću konstruktora.
Uzmimo programski primjer za bolje razumijevanje statičkih objekata klase.
#include using namespace std; class xyz { int i; public: xyz() { i=0; cout << 'Constructor::xyz'<U ovom programu imamo klasu xyz s konstruktorom i destruktorom. U glavnoj funkciji deklariramo varijablu x = 0; Ako je x jednako nuli, stvaramo statički objekt klase xyz.
Program daje sljedeći izlaz.
Izlaz:
Konstruktor :: xyz
Kraj glavnog
Destruktor :: xyz
najbolji DVD dešifrator za Windows 10
Uobičajeno je izlaz trebao biti
Konstruktor :: xyz
Destruktor :: xyz
Kraj glavnog
Ali dok stvaramo statički objekt, ovaj objekt ima opseg do kraja programa, a ne kada objekt izlazi iz opsega (kraj if naredbe). To je razlog zbog kojeg se destruktor za objekt obj izvršava tek nakon što se postigne kraj glavne funkcije.
Statičke metode u klasi
U klasi možemo imati i statičke metode. Baš kao i statički objekti i statičke varijable člana, i funkcije statičkih članova imaju opseg dok ne završi izvršavanje programa.
Kada se metoda klase proglasi statičnom, ona može pristupiti samo statičkim članovima, tj. Statičkim varijablama i statičkim funkcijama klase. Ne može pristupiti običnim članovima razreda.
Također, ne postoji pokazivač 'this' za metode statičke klase.
Dozvoljeno nam je koristiti objekt i operator točke za pristup statičkim metodama klase, ali za pristup tim metodama preporučuje se korištenje naziva klase i operatora razlučivosti opsega.
Ispod je primjer upotrebe statičke metode u klasi.
U ovom smo primjeru definirali dvije statičke varijable člana A i B te statičku metodu printValues. Varijable A i B inicijaliziraju se na vrijednosti 10 odnosno 20. U statičkoj metodi printValues, vrijednosti A i B prolaze nakon Inkrementa, odnosno Pre Inkrementa. Nakon toga vrijednosti se ispisuju.
U glavnoj metodi izravno nazivamo statičku metodu printValues koristeći naziv klase jer nam nije potreban nijedan objekt za pozivanje statičkih funkcija.
#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; }
Izlaz:
Vrijednost A: 11
Vrijednost B: 21
Snimak zaslona istog izlaza dat je u nastavku.

Dakle, u izlazu vidimo da se vrijednosti obje statičke varijable mijenjaju prema operacijama izvedenim na njima.
Svrha statičkih funkcija
Nakon što smo vidjeli razne upotrebe ključne riječi static u ovom vodiču, ostaje pitanje koja je svrha statičkih funkcija.
Svrha statičkih funkcija može se sažeti kako slijedi:
- Mi koristimo statičke funkcije kada ta funkcija ne ovisi o objektu za pozivanje i rad.
- Još je jedna svrha upotrebe statičke funkcije ograničiti njezinu upotrebu. Za razliku od globalnih funkcija, pristup statičkim funkcijama ograničen je na datoteku u koju su smještene. Stoga ga, kako bismo ograničili pristup funkciji, činimo statičnim.
- Osim gore navedena dva razloga, mi koristimo statičke funkcije kada ne želimo stvoriti objekt klase samo da bismo izvršili funkciju koja se ne odnosi na članove klase.
Zaključak
Da zaključimo ovu temu, možemo reći da se statična ključna riječ u C ++-u može koristiti na razne načine za deklariranje varijabli, varijabli člana, objekata klase, metoda itd.
Statičkim funkcijama i varijablama člana ne treba pristupiti s objektom, već im se može izravno pristupiti pomoću naziva klase. Također, opseg statičkih entiteta ostaje tijekom izvođenja programa. Stoga se statična ključna riječ također može koristiti za kontrolu pristupa određenom entitetu.
U našim predstojećim vodičima naučit ćemo više o nekoliko drugih OOP tema na C ++.
=> Ovdje pogledajte kako biste ovdje vidjeli A-Z of C ++ Tutorials Training.
Preporučena literatura
- Ismijavanje privatnih, statičkih i praznih metoda korištenjem Mockita
- Statičko ispitivanje i dinamičko ispitivanje - razlika između ove dvije važne tehnike ispitivanja
- TOP 40 alata za analizu statičkog koda (najbolji alati za analizu izvornog koda)
- Najbolji BESPLATNI vodiči za C #: Vrhunski vodič za C # za početnike
- Parametriranje statičkih vrijednosti u LoadRunneru
- Python varijable
- Vrste nasljeđivanja u C ++
- Varijable u C ++