Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++

Const-Class

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Um das Ändern einer Eigenschaft innerhalb der Klasse zu unterbinden, verwenden Sie das Schlüsselwort "const". Sehen Sie, mit welchen Veränderungen Sie hierbei rechnen müssen.

Transkript

So ich komme jetzt zu einer etwas kniffligen Geschichte, nämlich zu den konstanten Klassen. Ich habe hier mal eine Klassendefinition, myclass2, i1 ist eine private Variable, ich habe das hier absichtlich mal public gemacht, weil wir da ein bisschen spielen können mit, dann, der Konstruktor ist hier noch ganz normal, da initialisiere ich die entsprechende Klasse und hier lese ich diese beiden Variablen aus. Und das nehme ich jetzt hier nochmal raus, weil wir damit gleich ein bisschen Ärger bekommen. Das kann ich jetzt hier so machen, das kommentieren wir hier auch noch raus. Und ich starte es mal. Hier passiert jetzt an sich noch nichts aufregendes, so als ob man eine ganz normale Klasse hat, habe ich jetzt hier zwei Mal den Wert 75 ausgelesen i1 und i2, die werden hier entsprechend initialisiert mit i, jeweils zu dem gleichen Wert. Das besondere ist hier mal der Begriff const. Const heißt, dass es eine konstante Klasse ist, bei der ich ja eigentlich nichts verändern darf. Das ist die Idee von der Geschichte, dass man mit solchen Klassen hier Werte sperren kann. Ich kann jetzt hier mal i2=, na machen wir mal irgendwas sinnvolles, ein Wert zuweisen versuchen, es ist ein public Wert wohl gemerkt und da bekomme ich jetzt aber hier schonmal eine Fehlermeldung, weil eine Variable konstant ist, kann man nicht zuordnen. Durch dieses const hier vorne, ist auch die Variable hier drinnen konstant. Na ja, das ist natürlich saublöd, wenn man das mal so sagen darf. Aber da gibt es jetzt einen Trick. Nun erst einmal versuchen wir es mal trickmäßig sozusagen. Wir probieren das ganze mal mit einer Methode die hier innendrin steht. Ich habe also hier ein set. i2 (int) als Parameter und weise das zu, das nenne ich auch noch const, weil das muss man dann hier so machen bei den konstanten Klassen, sonst gibt es hier oben wieder eine Fehlermeldung. Und das geht natürlich auch schief, weil L-Wert gibt ein konstantes Objekt an, L-Wert das ist der Left-Zeit-Wert, das ist dieses i2 hier. So geht das nicht. Und jetzt kommt der große Trick: multeable, das ist fast wie ein... Ja muss man allerdings auch richtig schreiben. Mutable klingt fast wie ein Zauberspruch, ist ja auf fast sowas. So jetzt plötzlich wird das Ganze funktionieren, hoffe ich jedenfalls sehr. Naja jetzt habe ich den Wert 2 zugewiesen. Also obwohl es konstant ist, habe ich jetzt durch mutable das überschrieben und gesagt, nein das will ich ja doch zuweisen. Sie sagen, was soll denn dieser ganze Quatsch. Naja es macht durchaus einen Sinn. Wenn ich nämlich jetzt, obwohl es eine public Variable ist von außen da drauf zugreife, bekomme ich jetzt an dieser Stelle auch keine Fehermeldung, aber das ist jetzt schon wieder was compilerabhängiges und deshalb ist das ganze mit dieser const Geschichte ein bisschen problematisch. Ich selber sehe es nicht sehr gerne in meinen Programmen. Es wird sehr häufig in Standardbibliotheken verwendet, zum Beispiel hier mit konstanten Werten, die man dann aber im Allgemeinen wieder Rückumwandeln muss, in nicht konstante Werte und deshalb möchte ich das ganze jetzt hier mal so stehen lassen. Sie können es mal probieren mit anderen Compilern, das kann unter Umständen hier unterschiedlich sein, auf jeden Fall so, ohne diese auskommentierte Zeile ist es definiert das mutable ist nun tatsächlich hier innendrin veränderbar, ob es von außen veränderbar ist, ist noch so eine Geschichte für sich. Würde ja jetzt zum Beispiel Sinn machen, dass es von außen nicht veränderbar ist und nur von innen. Also da kann man ein bisschen rumspielen. Da muss ich zugeben, dass ich diese const Geschichten extrem selten verwende bei mir und sie deshalb, wie gesagt, ja auch mit ein bisschen mit Argwohn betrachte.

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!