So verwenden Statische Elemente in C ++

In C ++ können Sie Mitglied deklarieren, indem alle Objekte einer Klasse gemeinsam genutzt werden, indem das Mitglied statisch zu deklarieren. Ein statisches Datenelement in C ++ ist eine, die mit der erklärt wurde, statisch Speicherklasse, wie hier gezeigt:

Klasse Schüler {public: Student (char * pName = "no name"): Name (pName) {noOfStudents ++ -} ~ Student () {noOfStudents ---} static int noOfStudents-string name -} - Student s1-Schüler s2-

Das Datenelement noOfStudents Teil der Klasse ist Schüler aber ist nicht Teil entweder s1 oder s2. Das heißt, für jedes Objekt der Klasse Schüler, gibt es eine separate Name, aber es gibt nur eine noOfStudents, die alle Studenten muss teilen.

# 147-Well dann, # 148- Sie fragen, # 147, wenn der Platz für noOfStudents ist nicht in einem der Objekte der Klasse zugewiesen Schüler, wo sie zugeteilt? # 148- Die Antwort ist, # 147-Es ist nicht # 148- Sie müssen speziell Speicherplatz zuweisen für sie, wie folgt.:

int Studenten :: noOfStudents = 0-

Diese etwas eigentümlich aussehende Syntax reserviert Speicherplatz für den statischen Datenelement und initialisiert sie auf 0 (Sie müssen nicht ein statisches Element initialisieren, wenn Sie erklären it- C ++ wird der Standard-Konstruktor aufrufen, wenn Sie dies nicht tun.) Statische Daten Mitglieder müssen global sein - eine statische Variable kann nicht lokal zu einer Funktion sein.

Der Name der Klasse wird für jedes Mitglied erforderlich, wenn es außerhalb seiner Klassengrenzen erscheint.

Das Geschäft der Raum Aufteilung ist manuell etwas verwirrend, bis Sie die Klassendefinitionen berücksichtigen sind so konzipiert, in Dateien zu gehen, die von mehreren Quellcodemodule enthalten sind. C ++ muss wissen, in Dateien, die dieser CPP Quellraum für die statische Variable zuzuweisen. Dies ist kein Problem mit nicht-statische Variablen, weil der Raum in jeder erzeugten Objekt zugeordnet ist.

Menü