Vad är statisk medlemsfunktion i C ++?



Den här artikeln ger dig en detaljerad och omfattande kunskap om statisk medlemsfunktion i C ++ med exempel.

Statisk är ett nyckelord i C och C ++ som används för att deklarera en speciell typ av en variabel eller en funktion inom eller utanför en klass. I det här inlägget kommer vi kort att förstå begreppet statiska medlemsvariabler och statiska medlemsfunktioner i c ++ och jämföra dem med normala variabler och funktioner i följande ordning:

Statiska medlemsvariabler

Variabler som klassificeras som statiska är också en del av C. antag att det i en funktion finns två variabler, en är en normal variabel och den andra är en statisk variabel. Den normala variabeln skapas när funktionen anropas och dess omfattning är begränsad. Medan den statiska variabeln skapas en gång och förstörs i slutet av programmet. Dessa variabler har en livstid under hela programmet.





#include using namespace std void Test () {static int x = 1 x = ++ x int y = 1 y = ++ y cout<<'x = '<

Produktion:

static-member-variables-1



Från ovanstående utgång kan vi dra slutsatsen att varje gång Test () -funktionen kallades skapades en kopia av variabeln 'y' medan samma kopia av variabeln 'x' användes varje gång Test () -funktionen anropades.

Låt oss nu diskutera egenskaperna hos de statiska variablerna

  1. Statiska variabler initialiseras till 0. Den initialiseras bara en gång.



  2. Under hela programmet skapas endast en kopia av den statiska medlemsvariabeln för hela klassen, varför statiska medlemsvariabler också kallas klassvariabler. Det delas av alla instanser i klassen.

  3. Den statiska variabeln är bara synlig inom klassen men dess livstid är tills programmet slutar.

Låt oss överväga ett exempel på statiska variabler i en klass.

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

Produktion:

Från ovanstående utdata kan vi se att variabeln 'x' delas över alla objekt. För att förstå begreppet de statiska datavariablerna i detalj kan vi tänka på ett bibliotek där det finns flera böcker placerade i olika hyllor. Betrakta biblioteket som en klass, position för en viss bok ”x” som en statisk medlemsvariabel och eleverna som objekt i klassen. När den första studentenanlände placerar han 'x' i en ny position nu när en annan student anländer kommer 'x' inte att återgå till sin ursprungliga position men den kommer att förbli där den första studenten lämnade den.

sortera en array c ++

Statiska medlemsfunktioner i C ++

Precis som variabler för statiska medlemmar har vi statiska medlemsfunktioner som används för ett specifikt syfte. För att skapa en statisk medlemsfunktion måste vi använda det statiska nyckelordet när vi deklarerar funktionen. Eftersom statiska medlemsvariabler är klassegenskaper och inte objektegenskaper, måste vi använda klassnamnet istället för objektnamnet för att komma åt dem.

Egenskaper hos statiska medlemsfunktioner:

  1. En statisk funktion har endast åtkomst till andra statiska variabler eller funktioner som finns i samma klass

  2. Statiska medlemsfunktioner anropas med hjälp av klassnamnet. Syntax-klassnamn :: funktionsnamn ()

Låt oss överväga ett klassiskt exempel för att förstå begreppet statiska medlemsfunktioner i detalj. I det här exemplet kommer vi att förstå alla begrepp relaterade till statiska medlemsfunktioner.

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

Från ovanstående utdata kan vi se att värdet på variabeln 'n' är annorlunda för både objekten 'exempel1' och 'exempel2' i klassen 'Exempel'. Eftersom variabeln 'Number' är en klassvariabel är dess värde detsamma för både objekten 'exempel1' och 'exempel2'. Statiska medlemsvariabler och funktioner används när gemensamma värden ska delas över alla objekt. Under programmeringen bör användningen av statiska nyckelord göras klokt.

Med detta kommer vi till slutet av den här artikeln om statisk medlemsfunktion i c ++. Om du vill veta mer, kolla in av Edureka, ett pålitligt inlärningsföretag online. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.