Statische Variable C ++

Statische Variable C ++
„Static ist ein Schlüsselwort oder einen Modifikator in C ++, der sich auf einen Typ bezieht, nicht auf eine Instanz. Der Zugriff auf die statischen Mitglieder erfordert daher keine Instanz. Felder, Methoden, Konstruktoren, Klassen, Eigenschaften, Operatoren und Ereignisse können in C statisch sein++. Es spart Speicher, weil wir keine Instanz mehr erstellen müssen, um auf die statischen Mitglieder zuzugreifen. Da es sich nicht um ein Mitglied des Typs handelt, wird eine Instanz davon nicht jedes Mal erstellt, wenn Speicher verwendet wird. In diesem Artikel werden verschiedene Beispiele für die verschiedenen Möglichkeiten zur Verwendung von statischen in C ++ dargestellt. Die Methoden zur Verwendung von Static in C ++ sind hier detailliert detailliert. Sie zeigen, wie die verschiedenen Methoden funktionieren und wie sie auf verschiedene Weise verwendet werden können.”

Beispiel 1

Schauen wir uns diese erste Instanz einer statischen Variablen in C an++.

#enthalten
#enthalten
Verwenden von Namespace STD;
void my_demo ()

static int count_val = 0;
Cout<count_val ++;

int main ()

für (int i = 0; i<4; i++)
My_demo ();
Rückkehr 0;

In der Funktion "my_demo" haben wir die statische Variable "count_val" erstellt, indem wir das statische Schlüsselwort verwenden und mit dem Wert Null festgelegt haben. Danach wird das count_val für den nächsten Funktionsaufruf erhöht. Dann haben wir die Hauptfunktion, in der wir eine für die Iteration für Schleife haben und die Funktion "my_demo" aufrufen.

Das Ergebnis des obigen statischen variablen Skripts lautet wie folgt:

Beispiel 2

Die statischen Variablen in einer Klasse sind von den Objekten zugänglich, da ihnen Platz im separaten statischen Speicher zugewiesen wird, was bedeutet, dass Variablen, die als statisch gekennzeichnet sind. Die gleichen statischen Variablen können nicht mehr als einmal für verschiedene Objekte verwendet werden. Aus diesem Grund können Konstruktoren statische Variablen nicht initialisieren. Infolgedessen benötigt der Benutzer die statischen Variablen in den Klassen manuell, indem der Unterrichtsname und den Aperator der Umfangsauflösung über die Klasse hinaus verwendet werden, wie unten dargestellt:

#enthalten
Verwenden von Namespace STD;
Klasse Myclass

öffentlich:
statische int x;
Meine Klasse()

// leerer Körper
;
;
int myclass :: x = 2;
int main ()

Myclassobj;
Cout<

Wir haben eine Klasse „Myclass“ eingerichtet, die öffentlich gehalten wird. Dann haben wir eine statische Variable "x" definiert. Dann haben wir den Konstruktor der Klasse „Myclass“ erstellt, der aufgrund ihres leeren Körpers nichts tut. Außerhalb der Klasse haben wir die statische Variable „X“ mit der Umfangsauflösung „::“ explizit initialisiert. Dann haben wir im Int Main das Objekt "obj" deklariert, indem wir die "Myclass" angerufen und seinen Wert drucken.

Der Wert der im obigen Skript festgelegten statischen Variablen x wird unten angezeigt.

Beispiel 3

Wie Sie aus dem obigen Programm sehen können, haben wir uns bemüht, mehrere Duplikate der statischen Variablen für verschiedene Objekte zu machen. Aber das geschah nicht nicht.

#enthalten
Verwenden von Namespace STD;
Klasse myclass2

int a;
öffentlich:
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";

Wir haben eine Klasse „myclass2“ eingerichtet und ein Objekt als „a“ deklariert. Dann haben wir den Konstruktor von „MyClass2“ definiert, der das Objekt „A“ mit dem Nullwert initialisiert. Außerdem wird es die Aussage „Konstruktorkörper“ abdecken. Darüber hinaus haben wir den Destruktor der Klasse „MyClass2“ konstruiert, der nur die Aussage „Destructor Body“ druckt. Danach haben wir die int -Hauptfunktion erstellt, die ein anderes Objekt als "B" als Null definiert und initialisiert. Außerdem haben wir eine IF -Anweisung, die die Bedingung hat, dass das Objekt „B“ gleich dem Wert Null ist, und definiert dann das Konstruktor MyClass2 -Objekt als „obj“. Am Ende haben wir den COUT -Befehl angerufen, mit dem die Nachricht der wichtigsten Kündigung gedruckt wird.

Das folgende Ergebnis wird auf der Eingabeaufforderung gedruckt.

Beispiel 4

Das Objekt wird im oben genannten Programm if Block als nicht statisch bezeichnet. Daher ist der Umfang der Variablen auf den IF -Block beschränkt. Infolgedessen wird der Funktionskonstruktor aufgerufen, wenn ein Objekt erstellt wird, und der Destruktor wird aufgerufen, sobald die Steuerung des Blocks nicht mehr wirksam ist. Lassen Sie uns nun untersuchen, wie sich die Ausgabe ändert, wenn wir das Objekt als statisch erklären,.

#enthalten
Verwenden von Namespace STD;
Klasse myclass3

int x = 0;
öffentlich:
Myclass3 ()

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

~ Myclass3 ()

Cout<< "Destructor Section\n";

;
int main ()

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

statische myclass3 obj;

Cout<< "Main Ended\n";


Wir haben die Klasse „myclas3“ wie im obigen Programm erstellt. Dann haben wir die Variable x definiert und ihm einen Wert von Null zugewiesen. Der Konstruktor und Destruktor sind auch in der Klasse „MyClass3“ festgelegt. In der Hauptaussage haben wir das statische Objekt von „MyClass3“ deklariert.

Die Leistungsänderung ist offensichtlich. Da der Destruktor nach der Hauptbildschirm auf dem nachfolgenden Bildschirm aufgerufen wird, fand dies aufgrund der Lebensdauer des Programms statt, die von statischen Objekten abgedeckt wurde.

Beispiel 5

Die Existenz statischer Mitgliedsfunktionen innerhalb einer Klasse ist unabhängig von jedem Klassenobjekt, genau wie die von statischen Datenmitgliedern oder statischen Variablen. Im Gegensatz zu den nicht statischen Datenmitgliedern und Mitgliedsfunktionen der Klasse dürfen statische Mitgliederfunktionen nur Zugriff auf andere statische Mitgliederfunktionen oder andere statische Datenmitglieder zulässig.

#enthalten
Verwenden von Namespace STD;
Klasse new_class

öffentlich:
statische void display_msg ()

Cout<<"Welcome to my portal";

;
int main ()

New_class :: display_msg ();

Die Klasse "new_class" verfügt über einen öffentlichen Modifikator, der die statische Void -Mitgliedsfunktion als "display_msg" definiert. In dieser statischen Member -Funktion "display_msg" haben wir die Cout -Anweisung gedruckt. Außerhalb der „New_class“ haben wir die Hauptmethode des Programms, bei der wir die statische Mitgliedsfunktion "display_msg" aufgerufen haben.

Die Ausgabe druckt die Meldung in der statischen Mitgliedsfunktion "display_msg" wie folgt:

Abschluss

Unser Verständnis der statischen Idee in C ++ kann auf dem oben genannten Artikel beruhen. Im statischen Speicherbereich werden statische Elemente während eines Programms immer nur einmal ein Speicher zur Verfügung gestellt. Darüber hinaus gilt sie für den gesamten Zeitraum des Programms. In diesem Leitfaden werden die verschiedenen statischen Nutzungstechniken zusammen mit Arbeitsbeispielen erörtert. Die Verwendung der Konzepte entsprechend den Anforderungen des Programmierers ist mit Hilfe der Beispiele einfacher.