Čo je funkcia statického člena v C ++?



Tento článok vám poskytne podrobné a komplexné znalosti o statických členských funkciách v jazyku C ++ s príkladmi.

Static je kľúčové slovo v jazykoch C a C ++, ktoré sa používa na deklarovanie špeciálneho typu premennej alebo funkcie vo vnútri alebo mimo triedy. V tomto príspevku stručne pochopíme pojem statické členské premenné a statické členské funkcie v c ++ a porovnáme ich s normálnymi premennými a funkciami v nasledujúcom poradí:

Statické premenné člena

Premenné klasifikované ako statické sú tiež súčasťou C. Predpokladajme, že vo funkcii existujú 2 premenné, jedna je normálna premenná a druhá je statická premenná. Normálna premenná sa vytvorí, keď sa funkcia volá a jej rozsah je obmedzený. Zatiaľ čo statická premenná je vytvorená raz a zničená na konci programu. Tieto premenné majú životnosť počas celého programu.





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

Výkon:

static-member-variables-1



Z vyššie uvedeného výstupu môžeme usúdiť, že zakaždým, keď bola funkcia Test () nazývaná, bola vytvorená kópia premennej ‘y’, zatiaľ čo rovnaká kópia premennej ‘x’ bola použitá vždy, keď bola volaná funkcia Test ().

Teraz si predstavme vlastnosti statických premenných

na čo sa používa bábka
  1. Statické premenné sa inicializujú na 0. Inicializuje sa iba raz.



  2. V celom programe je vytvorená iba jedna kópia statickej členskej premennej pre celú triedu, preto sa statické členské premenné nazývajú aj premenné triedy. Zdieľajú ho všetky inštancie triedy.

  3. Statická premenná člena je viditeľná iba v rámci triedy, ale jej životnosť je až do konca programu.

Zoberme si príklad statických členských premenných v triede.

ng-zmena vs zmena
#include using namespace std class Example {static int x public: void function1 () {x ++} void function2 () {cout<<'x = '<

Výkon:

Z vyššie uvedeného výstupu vidíme, že premenná „x“ je zdieľaná vo všetkých objektoch. Aby sme podrobne porozumeli pojmu premenných statických údajov, môžeme uvažovať o knižnici, kde je na rôznych policiach niekoľko kníh. Knižnicu považujte za triedu, pozíciu určitej knihy „x“ za statickú premennú člena a študentov za objekty triedy. Keď prvý študentkeď dorazí, umiestni „x“ na novú pozíciu, keď nový študent dorazí „x“, nevráti sa na pôvodné miesto, ale zostane tam, kde ho opustil prvý študent.

Statické členské funkcie v C ++

Rovnako ako statické členské premenné, máme aj statické členské funkcie, ktoré sa používajú na konkrétny účel. Na vytvorenie statickej členskej funkcie musíme pri deklarovaní funkcie použiť kľúčové slovo static. Pretože statické členské premenné sú vlastnosti triedy a nie vlastnosti objektu, na prístup k nim musíme namiesto názvu objektu použiť názov triedy.

Vlastnosti statických členských funkcií:

  1. Statická funkcia má prístup iba k iným statickým premenným alebo funkciám prítomným v rovnakej triede

  2. Statické členské funkcie sa volajú pomocou názvu triedy. Syntax-class_name :: function_name ()

Uvažujme o klasickom príklade podrobného porozumenia pojmu statické členské funkcie. V tomto príklade pochopíme všetky pojmy týkajúce sa statických členských funkcií.

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

Z vyššie uvedeného výstupu vidíme, že hodnota premennej ‘n’ je rozdielna pre objekty ‘example1’ aj ‘example2’ triedy „Example“. Pretože premenná „Number“ je premenná triedy, jej hodnota je rovnaká pre objekty „example1“ aj „example2“. Statické členské premenné a funkcie sa používajú, keď sa majú spoločné hodnoty zdieľať vo všetkých objektoch. Pri programovaní by sa malo statické kľúčové slovo používať rozumne.

Týmto sa dostávame na koniec tohto článku o statickej členskej funkcii v c ++. Ak sa chcete dozvedieť viac, pozrite si Edureka, dôveryhodná online vzdelávacia spoločnosť. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je navrhnutý tak, aby vás vyškolil pre základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.