Kursinhalt
C++ OOP
C++ OOP
Statische Mitglieder der Klasse
In der objektorientierten Programmierung hat das Schlüsselwort static
eine besondere Bedeutung, da es das Verhalten von Attributen und Methoden verändert. Es gibt manchmal Szenarien, in denen bestimmte Daten unter allen Objekten einer Klasse geteilt werden müssen, anstatt für jede Instanz repliziert zu werden. Hier kommen statische Datenmitglieder ins Spiel.
Die Syntax der statischen Mitglieder
Das Erstellen eines statischen Mitglieds einer Klasse ist unkompliziert. Sie müssen einfach die Deklaration mit dem Schlüsselwort static
versehen.
Example
class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };
Im obigen Beispiel sind static_attibute und static_method() als statische Datenmitglieder der Klasse Example deklariert. Im Gegensatz zu regulären Datenmitgliedern sind statische Datenmitglieder mit der Klasse selbst verbunden und nicht mit einzelnen Objekten. Das bedeutet, dass alle Instanzen von Example dieselben statischen Mitglieder teilen.
Hinweis
Um auf ein statisches Datenmitglied zuzugreifen, verwenden wir den Gültigkeitsbereichsauflösungsoperator (
::
). Aber vorher müssen wir es initialisieren.
Die Initialisierung ist entscheidend für statische Datenmitglieder und muss außerhalb der Klasse erfolgen, es sei denn, das Mitglied verwendet auch das const
Schlüsselwort.
FirstExample
SecondExample
class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;
Vorteile der Verwendung von statischen Mitgliedern
Die Verwendung von statischen Datenmitgliedern und statischen Mitgliedsfunktionen bietet mehrere Vorteile:
-
Ressourcenteilung: Statische Datenmitglieder erleichtern die gemeinsame Nutzung von Daten unter allen Instanzen einer Klasse, reduzieren den Speicherverbrauch und fördern eine effiziente Ressourcennutzung.
-
Utility-Funktionen: Statische Mitgliedsfunktionen können verwendet werden, um Utility-Funktionen zu implementieren oder Operationen durchzuführen, die nicht vom Zustand eines Objekts abhängen.
-
Klassenweite Operationen: Statische Mitgliedsfunktionen bieten eine Möglichkeit, klassenweite Operationen durchzuführen oder Daten auf Klassenebene zu manipulieren ohne die Notwendigkeit einer Objektinstanziierung.
main
#include <iostream> class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; // Initialization of the static member variable int Example::static_attribute = 0; int main() { Example obj1, obj2; obj1.static_attribute = 100; // Modifying static_attribute through obj1 std::cout << obj1.static_attribute << std::endl; std::cout << obj2.static_attribute << std::endl; Example::static_attribute = 25; // Modifying static_attribute through class Example::static_method(); // Calling the static method through class }
Hinweis
Versuchen Sie, mit einer Example class und ihren statischen Mitgliedern zu experimentieren
Danke für Ihr Feedback!