Zurück

Objektorientierte Programmierung

Übungen

Übung 6-1

Vererbung und der Zuweisungsoperator in C++

Stellen Sie sich vor, eine C++-Elternklasse A verfügt über einen eigens implementierten Zuweisungsoperator operator=().

Ist es sinnvoll, gelegentlich notwendig oder immer notwendig, in einer aus A abgeleiteten Tochterklasse B ebenfalls einen eigenen Zuweisungsoperator zu implementieren? Begründen Sie und geben Sie mind. ein konkretes Beispiel!

Übung 6-2

Vererbung und Kopierkonstruktor

In Analogie zur vorherigen Aufgabe: überlegen Sie sich bitte, ob es (immer) sinnvoll (oder notwendig) ist, in einer abgeleiteten C++-(Tochter-)Klasse ebenfalls einen eigenen Kopierkonstruktor zu implementieren, wenn die Elternklasse einen eigens geschriebenen Kopierkonstruktor besitzt.

Implementieren Sie bitte ein konkretes Beispiel zur Illustration (und selbstverständlich zur Übung).

Zusatzfrage: weshalb wird in Java das Thema Kopierkonstruktor seltener thematisiert als in C++?

Übung 6-3

Klassenbildung

Sie haben vermutlich bereits das Datenkonzept einer Linearen Liste kennengelernt? (Falls nicht, so können Sie gerne hier, hier oder hier noch einmal nachlesen.)

Abgesehen davon, dass es in der Standard Template Library (STL) von C++ und die Library von Java solche einfach verketteten Linearen Listen bereits gibt (z.B. als list<int> für eine Liste von int-Werten), ist es natürlich eine gute Übung, einmal zumindest eine einfache Implementierung selbst zu programmieren.

Realisieren Sie daher bitte eine Klasse LListe, die Lineare Listen von ganzen Zahlen umsetzt. Stellen Sie bitte sinnvolle Konstruktoren, in C++ auch den Destruktor sowie Methoden zum Zugriff auf die einzelnen Knoten der Liste sowie zum Anhängen und Löschen von Knoten bereit. Auch eine Ausgabe-Methode (oder - in C++ für Fortgeschrittene - ein operator<<()) wäre hier angebracht.


© 1999-2021 FHDW/Peter Baeumle-Courth. Document-Id: fhdwbap:opg:028435-4