Hvad er statisk medlemsfunktion i C ++?



Denne artikel giver dig en detaljeret og omfattende viden om statisk medlemsfunktion i C ++ med eksempler.

Statisk er et nøgleord i C og C ++, der bruges til at erklære en speciel type af en variabel eller en funktion inden for eller uden for en klasse. I dette indlæg vil vi kort forstå begrebet statiske medlemsvariabler og statiske medlemsfunktioner i c ++ og sammenligne dem med normale variabler og funktioner i følgende rækkefølge:

Statiske medlemsvariabler

Variabler klassificeret som statiske er også en del af C. antag, at der i en funktion er to variabler, den ene er en normal variabel, og den anden er en statisk variabel. Den normale variabel oprettes, når funktionen kaldes, og dens omfang er begrænset. Mens den statiske variabel oprettes en gang og destrueres i slutningen af ​​programmet. Disse variabler har en levetid gennem hele programmet.





#include ved hjælp af namespace std ugyldig Test () {statisk int x = 1 x = ++ x int y = 1 y = ++ y cout<<'x = '<

Produktion:

static-member-variables-1



Fra ovenstående output kan vi konkludere, at hver gang Test () - funktionen blev kaldt, blev der oprettet en kopi af variablen 'y', mens den samme kopi af variablen 'x' blev brugt hver gang Test () - funktionen blev kaldt.

hvad er brugen af ​​socket-programmering

Lad os nu diskutere egenskaberne ved de statiske variabler

  1. Statiske variabler initialiseres til 0. Den initialiseres kun én gang.



  2. I hele programmet oprettes kun en kopi af den statiske medlemsvariabel for hele klassen, derfor kaldes statiske medlemsvariabler også klassevariabler. Det deles af alle forekomster af klassen.

  3. Den statiske medlemsvariabel er kun synlig inden for klassen, men dens levetid er indtil programmet slutter.

Lad os overveje et eksempel på statiske medlemsvariabler i en klasse.

#include using namespace std class Eksempel {static int x public: void function1 () {x ++} void function2 () {cout<<'x = '<

Produktion:

Fra ovenstående output kan vi se, at variablen 'x' deles på tværs af alle objekterne. For at forstå konceptet med de statiske datavariabler i detaljer kan vi tænke på et bibliotek, hvor der er flere bøger placeret i forskellige hylder. Overvej biblioteket som en klasse, placeringen af ​​en bestemt bog 'x' som en statisk medlemsvariabel og studerende som klassens genstande. Når den første studerendeankom placerer han 'x' på en ny position nu, når en anden studerende ankommer, 'x' vender ikke tilbage til sin oprindelige position, men det forbliver hvor den første elev forlod det.

Statiske medlemsfunktioner i C ++

Ligesom statiske medlemsvariabler har vi statiske medlemsfunktioner, der bruges til et bestemt formål. For at oprette en statisk medlemsfunktion skal vi bruge det statiske nøgleord, mens vi erklærer funktionen. Da statiske medlemsvariabler er klasseegenskaber og ikke objektegenskaber, skal vi bruge klassens navn i stedet for objektnavnet for at få adgang til dem.

Egenskaber for statiske medlemsfunktioner:

  1. En statisk funktion kan kun få adgang til andre statiske variabler eller funktioner, der findes i samme klasse

  2. Statiske medlemsfunktioner kaldes ved hjælp af klassens navn. Syntaks-klassenavn :: funktionsnavn ()

Lad os overveje et klassisk eksempel for at forstå begrebet statiske medlemsfunktioner i detaljer. I dette eksempel vil vi forstå alle begreber relateret til statiske medlemsfunktioner.

#include using namespace std class Eksempel {static int Number int n public: void set_n () {n = ++ Number} void show_n () {cout<<'value of n = '<

Fra ovenstående output kan vi se, at værdien af ​​variablen 'n' er forskellig for både objekterne 'eksempel1' og 'eksempel2' i klassen 'Eksempel'. Da variablen 'Antal' er en klassevariabel, er dens værdi den samme for både objekterne 'eksempel1' og 'eksempel2'. Statiske medlemsvariabler og -funktioner bruges, når fælles værdier skal deles på tværs af alle objekterne. Under programmering skal brugen af ​​statiske søgeord ske klogt.

Med dette kommer vi til slutningen af ​​denne artikel om statisk medlemsfunktion i c ++. Hvis du ønsker at lære mere, skal du tjekke af Edureka, et betroet online læringsfirma. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til at træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarsektionen på denne blog, og vi vender tilbage til dig hurtigst muligt.