Statische Mitglieder der Klasse
Im objektorientierten Programmieren besitzt das Schlüsselwort static
eine besondere Bedeutung und verändert das Verhalten von Attributen und Methoden. Es gibt Situationen, in denen bestimmte Daten von allen Objekten einer Klasse gemeinsam genutzt werden sollen, anstatt für jede Instanz repliziert zu werden. Hier kommen statische Datenmember zum Einsatz.
Die Syntax der statischen Member
Das Erstellen eines statischen Members einer Klasse ist unkompliziert. Sie müssen lediglich der Deklaration das Schlüsselwort static
voranstellen.
Example.h
12345class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };
Im obigen Beispiel werden static_attribute
und static_method()
als statische Datenmitglieder der class Example
deklariert. Im Gegensatz zu regulären Datenmitgliedern sind statische Datenmitglieder mit der Klasse selbst und nicht mit einzelnen Objekten verknüpft. Das bedeutet, dass alle Instanzen von Example
dieselben statischen Mitglieder teilen.
Die Initialisierung ist für statische Datenmitglieder entscheidend und muss außerhalb der Klasse erfolgen, es sei denn, das Mitglied verwendet zusätzlich das Schlüsselwort const
.
FirstExample.h
SecondExample.h
1234567class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;
Vorteile der Verwendung statischer Member
Der Einsatz von statischen Datenmitgliedern und statischen Memberfunktionen bietet mehrere Vorteile.
main.cpp
12345678910111213141516171819202122#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 }
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.13
Statische Mitglieder der Klasse
Swipe um das Menü anzuzeigen
Im objektorientierten Programmieren besitzt das Schlüsselwort static
eine besondere Bedeutung und verändert das Verhalten von Attributen und Methoden. Es gibt Situationen, in denen bestimmte Daten von allen Objekten einer Klasse gemeinsam genutzt werden sollen, anstatt für jede Instanz repliziert zu werden. Hier kommen statische Datenmember zum Einsatz.
Die Syntax der statischen Member
Das Erstellen eines statischen Members einer Klasse ist unkompliziert. Sie müssen lediglich der Deklaration das Schlüsselwort static
voranstellen.
Example.h
12345class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };
Im obigen Beispiel werden static_attribute
und static_method()
als statische Datenmitglieder der class Example
deklariert. Im Gegensatz zu regulären Datenmitgliedern sind statische Datenmitglieder mit der Klasse selbst und nicht mit einzelnen Objekten verknüpft. Das bedeutet, dass alle Instanzen von Example
dieselben statischen Mitglieder teilen.
Die Initialisierung ist für statische Datenmitglieder entscheidend und muss außerhalb der Klasse erfolgen, es sei denn, das Mitglied verwendet zusätzlich das Schlüsselwort const
.
FirstExample.h
SecondExample.h
1234567class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;
Vorteile der Verwendung statischer Member
Der Einsatz von statischen Datenmitgliedern und statischen Memberfunktionen bietet mehrere Vorteile.
main.cpp
12345678910111213141516171819202122#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 }
Danke für Ihr Feedback!