Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++

Static

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
"static" verändert das Verhalten Ihrer Klasse. Wie diese Veränderung aussieht, sehen Sie in diesem Film.

Transkript

Ich möchte Ihnen jetzt was über statische Elemente in einer Klasse erzählen und zeigen wie das funktioniert. Also hier haben wir erstmal eine Klassendefinition ich mache hier mal noch einen kleinen Abstand rein, myclass wie immer private static int counter. Das ist jetzt ein statischer Wert. Statisch heißt eigentlich bleiben stabil und der bleibt jetzt auch bei mehreren Klassen, Definitionen der gleiche physikalische Speicherplatz, so muss man sich das eigentlich vorstellen und da kann ich natürlich einige besondere Sachen mit machen. Also hier haben wir noch was anderes statisches: static const int, sowas gibt es auch in der Konstruktion myyear=1995, hier initialisiere ich den Wert aber auch gleich. Hier darf ich sowas machen. Das ist jetzt eine Konstante, die man nicht abändern will. Wie gesagt zum Beispiel irgendein Jahr oder was auch immer wie pi oder ähnliche Konstanten, die man im Programm hat braucht. Nun gut bei counter habe ich zwar ein statischen Wert, aber keinen konstanten Wert und ich kann deshalb hier eine Methode addcount definieren, mit counter++ die jeweils den Wert um 1 erhöht und wir brauchen auch eine Ausgabe, da gebe ich ruhig mal beides aus, das sind myyear und den counter. Nun muss ich den Inhalt von counter aber noch definieren. Weil es eine statische Variable ist, schreibt man das ein bisschen anders, und zwar hier außerhalb von den Klasse zum Beispiel int myclass::counter=0. Ähnlich wie ich eine Funktion oder Prozedur oder Methode definiere, kann ich auch solche Variablen hier direkt setzen. Und das da ist eine Besonderheit, warum ich das nicht in einem Konstruktor mache, weil ich diese Variable nur einmal setzen möchte. Das ist ja eine statische Variable, die unabhängig von der Instanziierung der Klasse existiert. Das ist die Besonderheit an dieser Geschichte. Nun kommen wir mal zum Hauptprogramm und da zeige ich Ihnen mal wie das Funktioniert. Hier unten dürfen wir das return 0 nicht vergessen. Ich lasse das manchmal weg es ist aber nicht sauber und sollte eigentlich hier immer ein return 0 dahinter haben. So, das tut jetzt nicht zur Sache. Wir haben jetzt zwei Klassen: myclass c1 und c2. Hier definiere ich jetzt die beiden Variablen c1 und c2 ohne Konstruktor. Haben wir jetzt diesmal nicht, brauchen wir auch nicht, weil eigentlich alles schon definiert ist. Und c1 ausgabe gibt mir den ersten Wert von c1 aus, dann addiere ich auf den counter 1 drauf und dann gebe ich wieder c2 aus und nochmal c1 [unversändlich] Wir werden schauen was da passiert, weil da ist jetzt eigentlich die Besonderheit in dieser Geschichte. Wenn ich das aufrufe sehen Sie beim zweiten Mal habe ich hier 1 und aber bei c1 auch eine 1. Das ist ganz klar, weil es nur eine physikalische Speicherzelle gibt, die von allen Instanziierungen der Klasse, hier nämlich c1 und c2, das sind die Instanziierungen, gemeinsam benutzt werden, ist wenn ich bei c2 etwas drauf addiere, also hier, automatisch auch bei c1 der Wert identisch. Denn das ist ja auch eine gewollte Geschichte. MIt solchen statischen Variablen kann man genau das erzielen, dass ich auch bei mehreren Instanziierungen eine gemeinsame Variable zum Beispiel zur Kommunikation, ein gemeinsame Zähler oder ähnliches verwenden kann und ich müsste nicht, wie sonst üblich hier das Integer nach außen ziehen. Außerhalb von der Klasse habe ich natürlich dann nur noch eine Variable und könnte das auch so schreiben. Ich will das ganze aber ein bisschen abkapseln in einer privaten Deklaration, so dass ich von außen nicht unkontrolliert an diesen counter herankomme, sondern nur mit der Methode oder mit ausgabe oder mit setze zum Beispiel und damit eben etwas strukturierter programmiern kann.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!