Statisk variabel C ++

Statisk variabel C ++
“Statisk er et nøkkelord eller modifiserer i C ++ som refererer til en type, ikke en forekomst. Derfor krever ikke tilgang til de statiske medlemmene en forekomst. Felt, metoder, konstruktører, klasser, egenskaper, operatører og hendelser kan alle være statiske i C++. Det sparer minne fordi vi ikke lenger trenger å bygge en forekomst for å få tilgang til de statiske medlemmene. I tillegg, fordi det er medlem av typen, vil det ikke bli opprettet en forekomst av den hver gang minne. Ulike eksempler på de forskjellige måtene å bruke statisk i C ++ er presentert i denne artikkelen. Metodene for å bruke statiske i C ++ er detaljert her. De viser hvordan de forskjellige metodene fungerer og hvordan de kan brukes på en rekke måter.”

Eksempel 1

La oss sjekke ut denne første forekomsten av en statisk variabel i C++.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
void my_demo ()

statisk int count_val = 0;
cout<count_val ++;

int main ()

for (int i = 0; i<4; i++)
My_demo ();
retur 0;

Innenfor funksjonen “my_demo” har vi laget den statiske variabelen “count_val” ved å bruke nøkkelordstatisk og sette den med verdien null. Etter det økes grev_valen for neste funksjonssamtale. Deretter har vi hovedfunksjonen der vi har en for loop for iterasjon og påkaller funksjonen “my_demo”.

Utfallet av ovennevnte statiske variabelskript er som følger:

Eksempel 2

De statiske variablene i en klasse er tilgjengelige av objektene siden de er tildelt plass i separat statisk lagring, noe som betyr at variabler merket som statisk bare initialiseres en gang. De samme statiske variablene kan ikke brukes mer enn en gang for forskjellige objekter. I tillegg, på grunn av dette, kan ikke konstruktører initialisere statiske variabler. Som et resultat trenger brukeren manuelt initialisere statiske variabler inne i klasser ved å bruke klassenavnet og omfangsoppløsningsoperatøren utover klassen, som illustrert nedenfor:

#inkludere
ved hjelp av navneområdet STD;
klasse Myclass

offentlig:
statisk int x;
Klassen min()

// tom kropp
;
;
int myclass :: x = 2;
int main ()

MyClassobj;
cout<

Vi har etablert en klasse, "MyClass", som blir offentliggjort. Deretter har vi definert en statisk variabel “x”. Deretter opprettet vi konstruktøren av klassen "MyClass", som ikke gjør noe på grunn av den tomme kroppen. Utenfor klassen har vi eksplisitt initialisert den statiske variabelen “X” med omfangsoppløsningen “::”. Deretter, inne i INT -hoved, har vi erklært objektet "OBJ" ved å påkalle "MyClass" og skrive ut verdien.

Verdien av den statiske variabelen X -settet i skriptet ovenfor vises nedenfor.

Eksempel 3

Som du ser fra programmet over, gjorde vi et forsøk på å lage flere duplikater av den statiske variabelen for forskjellige objekter. Men dette fant ikke sted.

#inkludere
ved hjelp av navneområdet STD;
Klasse MyClass2

int a;
offentlig:
MyClass2 ()

a = 0;
cout<< " Constructor Body\n";

~ MyClass2 ()

cout<< "Destructor Body\n";

;
int main ()

int b = 0;
if (b == 0)

MyClass2 obj;

cout<< "Main Terminated\n";

Vi har etablert en klasse, "MyClass2," og erklært et objekt som "a". Deretter har vi definert konstruktøren av "MyClass2", som initialiserer objektet "A" med nullverdien. Dessuten vil det cout uttalelsen "konstruktørorgan". Dessuten har vi konstruert destruktøren av klassen "MyClass2", som bare skriver ut uttalelsen "Destructor Body". Etter det har vi opprettet Int -hovedfunksjonen, som definerer og initialiserer et annet objekt som "B" sett som null. Vi har også en IF -uttalelse som har betingelse av at objektet "B" er lik verdien null og deretter definerer konstruktøren MyClass2 -objektet som "OBJ". Til slutt har vi kalt cout -kommandoen, som vil skrive ut meldingen til hovedoppgaven.

Følgende utfall skrives ut på ledeteksten.

Eksempel 4

Objektet er utpekt som ikke-statisk i det nevnte programmets IF-blokk. Derfor er omfanget av variabelen begrenset til IF -blokken. Som et resultat kalles funksjonskonstruktøren når et objekt opprettes, og destruktøren kalles så snart If -blokkens kontroll ikke lenger er i kraft fordi et objekts omfang er begrenset til IF -blokken, der den er erklært. La oss nå undersøke hvordan utgangen vil endre seg hvis vi erklærer at objektet er statisk.

#inkludere
ved hjelp av navneområdet STD;
Klasse MyClass3

int x = 0;
offentlig:
MyClass3 ()

x = 0;
cout<< "Constructor Section\n";

~ MyClass3 ()

cout<< "Destructor Section\n";

;
int main ()

int y = 0;
if (y == 0)

statisk MyClass3 OBJ;

cout<< "Main Ended\n";


Vi har laget klassen “MyClas3” som i programmet ovenfor. Deretter definerte vi variabelen X og tildelte den en verdi på null. Konstruktøren og destruktøren er også etablert i klassen “MyClass3”. Innenfor det viktigste, hvis betinget uttalelse, har vi erklært det statiske objektet til "MyClass3".

Endringen i ytelsen er åpenbar. Fordi destruktøren kalles på den påfølgende hurtigskjermen etter hovedet, fant dette sted som et resultat av at programmets levetid ble dekket av statiske objekter.

Eksempel 5

Eksistensen av statiske medlemsfunksjoner i en klasse er uavhengig av ethvert klasseobjekt, akkurat som for statiske datamedlemmer eller statiske variabler. I motsetning til klassens ikke-statiske datamedlemmer og medlemsfunksjoner, er statiske medlemsfunksjoner bare tillatt tilgang til andre statiske medlemsfunksjoner eller andre statiske datamedlemmer.

#inkludere
ved hjelp av navneområdet STD;
klasse new_class

offentlig:
statisk tomrom display_msg ()

cout<<"Welcome to my portal";

;
int main ()

New_class :: display_msg ();

Klassen “New_class” har en offentlig modifiserer som definerer den statiske tomrommet -funksjonen som “Display_msg”. Inne i den statiske "Display_msg" medlemsfunksjonen har vi skrevet ut cout -setningen. Utenfor "new_class" har vi INT hovedmetode i programmet der vi har påkalt den statiske medlemsfunksjonen "Display_msg".

Utgangen skriver ut meldingen i den statiske medlemsfunksjonen “Display_msg” som følger:

Konklusjon

Vår forståelse av den statiske ideen i C ++ kan være basert på den nevnte artikkelen. I det statiske lagringsområdet er statiske varer bare noen gang tildelt lagring en gang i løpet av et program. I tillegg er de gyldige i hele programmet. Denne guiden diskuterer de forskjellige statiske bruksteknikker sammen med arbeidseksempler. Å bruke konseptene i henhold til programmererens behov vil være enklere ved hjelp av eksemplene.