C++

Array-Index-Operator

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Überladen Sie den Array-Index-Operator. Lernen Sie vom Trainer, wie er dies anstellt und auf welche Schreibweisen zu achten ist.

Transkript

Nun wird es ganz verrückt. Man kann auch Array-Operatoren überlade, also die eckigen Klammern, den Index-Operator wie man sagt. Nun das machen wir hier wieder an einem Beispiel mit class mystring. Wir definieren uns also hier erstmal einen eigenen String, Charachter Pointer und Länge, dann Konstruktor, Destruktor wie gehabt und die Ausgabe und den Zuweisungsoperator lassen wir hier auch mal wie gehabt stehen, aber hier kommen wir jetzt zum eigentlichen Index-Operator. Der wird jetzt wie folgt deklariert. Im Prinzip können wir ja irgendein Wert zurückgeben was wir ja immer wollen. Wir wollen jetzt aber hier ein Charachter holen uns aus dem String, und zwar deklariere ich hier als Operator eckige Klammer: eckige Klammer auf und eckige Klammer zu und in Parametern int Index. Ich möchte die von einem Index in unserem String abholen und dann kann ich jetzt das eigentlich sehr schön bei so einem überschreiben und nicht direkten Zugriff in die Speicherzellen, zum Beispiel den Wertebereich prüfen, nur wenn er innerhalb von Länge liegt, also von 0 bis Länge -1, dann übergebe ich den Pointer auf Index als Ergebnis,dort steht ja das Charachter. Wenn das nicht der Fall ist, dann gebe ich ein Minus Zeichen zurück, das könnte auch ein Fragezeichen sein oder gar nichts, das muss man sich halt überlegen was man da möchte. Man kann diese Operatoren ja auch mehrfach überladen, wenn sie sich voneinander Unterscheiden in den Parametern, also in der Signatur instgesamt, und zwar hier mal als Parameter ein const char *str1. Ich möchte einen Teil-String suchen in meinen String und übergebe dann als Ergebnis die erste Position, wo ich diesen String gefunden habe. Nun muss ich natürlich prüfen, ob der String überhaupt valide ist den ich habe, wenn ja, dann gebe ich mit strstr, also eine der Standardbibliotheks-Funktionen, einfach das Ergebnis zurück, nämlich Pointer als ptr,str1 sucht automatisch dann nach dem ersten String und übergibt den Pointer mit char * sowie wir es hier auch definiert haben. Im Hauptprogramm testen wir das Ganze mal aus. Ich habe hier erstmal s1 String definiert, ein s2 ist leer und ein Ergebnis, das brauchen wir, weil wir ja auch ein Wert ausgeben. So, hier gebe ich jetzt mal s1 für 0 aus und s1 für 1, das müssten die ersten beiden Buchstaben h und a sein, dann bei s2 ist nichts definiert, wir haben hier nichts initialisiert, darf ich aber trotzdem angeben, kommt ein Minus Zeichen daher. Und hier suchen wir jetzt nach dem Ergebnis, und geben dann die Position aus wo Welt in unserem String gibt , deshalb nehme ich hier das erg und gebe sie, das erg ist aber ein Pointer auf einen Charachter, darf das eigentlich auch nicht so schreiben,ich mache das gleich mal sauber, hätte man hier Pointer erg schreiben mussen, damit es ein bisschen klarer ist, was man da machen und hier gebe ich einfach den String aus von da ab Welt gefunden wir, aber das schauen wir uns doch jetzt einfahch mal an wie das Ganze aussieht. Naja, nicht wirklich gut. Wahrscheinlich habe ich jetzt hier natürlich noch was vergessen, durch meine schnellen Änderungen, die man ja eigentlich nie machen soll, sondern immer wohl überlegt. So jetzt, Ha, wie zu erwarten die ersten beiden Buchstaben in unserem String, dann - - für den undefinierten String und Welt 123, das ist einfach ab da der Rest, so haben wir jedenfalls mal unseren Index-Operator definiert, man könnte ihn natürlich auch anders definieren, was Sie auch immer möchten können Sie da selber hinzufügen.

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!