Co je funkce statického člena v C ++?



Tento článek vám poskytne podrobné a komplexní znalosti statické členské funkce v C ++ s příklady.

Static je klíčové slovo v C a C ++, které se používá k deklaraci speciálního typu proměnné nebo funkce uvnitř nebo vně třídy. V tomto příspěvku stručně pochopíme koncept statických členských proměnných a statických členských funkcí v jazyce C ++ a porovnáme je s normálními proměnnými a funkcemi v následujícím pořadí:

Statické proměnné členů

Proměnné klasifikované jako statické jsou také součástí C. Předpokládejme, že ve funkci existují 2 proměnné, jedna je normální proměnná a druhá je statická proměnná. Normální proměnná se vytvoří, když se funkce volá a její rozsah je omezený. Zatímco statická proměnná je vytvořena jednou a zničena na konci programu. Tyto proměnné mají životnost po celý program.





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

Výstup:

static-member-variables-1



Z výše uvedeného výstupu můžeme usoudit, že pokaždé, když byla funkce Test () nazývána, byla vytvořena kopie proměnné ‚y‘, zatímco při každém volání funkce Test () byla použita stejná kopie proměnné ‚x‘.

Nyní pojďme diskutovat o vlastnostech statických proměnných

nainstalovat php na Windows 7
  1. Statické proměnné jsou inicializovány na 0. Inicializuje se pouze jednou.



  2. V celém programu je vytvořena pouze jedna kopie proměnné statického člena pro celou třídu, proto se proměnné statického člena také nazývají proměnné třídy. Je sdílena všemi instancemi třídy.

  3. Proměnná statického člena je viditelná pouze ve třídě, ale její životnost je do ukončení programu.

Uvažujme příklad statických členských proměnných ve třídě.

co dělá .trim v java
#include using namespace std class Example {static int x public: void function1 () {x ++} void function2 () {cout<<'x = '<

Výstup:

Z výše uvedeného výstupu vidíme, že proměnná „x“ je sdílena všemi objekty. Abychom podrobně porozuměli pojmu proměnných statických dat, můžeme uvažovat o knihovně, kde je několik knih umístěných na různých policích. Vezměme si knihovnu jako třídu, pozici určité knihy „x“ jako statickou proměnnou člena a studenty jako objekty třídy. Když první studentkdyž dorazí, umístí „x“ na novou pozici, když přijde další student, „x“ se nevrátí do své původní polohy, ale zůstane tam, kde ji opustil první student.

Statické členské funkce v C ++

Stejně jako statické členské proměnné máme statické členské funkce, které se používají pro konkrétní účel. K vytvoření statické členské funkce musíme při deklaraci funkce použít statické klíčové slovo. Vzhledem k tomu, že statické členské proměnné jsou vlastnosti třídy a nikoli vlastnosti objektu, pro přístup k nim musíme použít název třídy místo názvu objektu.

Vlastnosti statických členských funkcí:

  1. Statická funkce má přístup pouze k dalším statickým proměnným nebo funkcím přítomným ve stejné třídě

  2. Statické členské funkce jsou volány pomocí názvu třídy. Syntax-název_třídy :: název_funkce ()

Uvažujme klasický příklad, abychom podrobně porozuměli pojmu statické členské funkce. V tomto příkladu pochopíme všechny koncepty související se statickými členskými funkcemi.

různé typy rámce v selenu
#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 výše uvedeného výstupu vidíme, že hodnota proměnné „n“ se liší jak pro objekty „example1“, tak „example2“ třídy „Example“. Protože proměnná „Number“ je proměnná třídy, její hodnota je stejná pro objekty „example1“ i „example2“. Statické členské proměnné a funkce se používají, když se mají společné hodnoty sdílet ve všech objektech. Při programování by se mělo statické klíčové slovo používat moudře.

S tímto se dostáváme na konec tohoto článku o statické členské funkci v c ++. Pokud se chcete dozvědět více, podívejte se na Edureka, důvěryhodná online vzdělávací společnost. Výcvikový a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java jako Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.