Objektorientiertes Programmieren

Prof. Dr. J. Bohli, Prof. Dr. P. Barth

Kurzinhalt der Vorlesung

  •  Grundkonzepte objektorientierter Programmierung: Klasse, Objekt, Vererbung, Polymorphismus
  • Nicht-objektorientierte Erweiterungen in C++: Referenzen, Überladen von Funktionen, Default-Parameterübergabe, Namensräume, Operatoren zur Ein-/ Ausgabe
  • Klassen und Objekte: Konstruktor, Destruktor, private, public, friend, klassenweite member, Komposition, Aggregation, Initialisierungslisten, this, Felder von Objekten, Zuweisungsoperator, Copy-Constructor, flache Kopie, tiefe Kopie, Objekte als Funktionsparameter
  • Überladen von Operatoren: Deklaration und Implementierung, Operatoren als Memberfunktionen oder globale Funktionen
  • Vererbung: Abgeleitete Klassen, Überschreiben von Elementfunktionen, protected, Mehrfachvererbung, qualifizierte Namen, virtuelle Basisklassen, Polymorphismus, Spätes Binden, virtuelle Funktionen, abstrakte Basisklassen, rein virtuelle Funktionen
  • Templates: Funktions-Templates, Klassen-Templates, Einsatz von Templates
  • Fehlerbehandlung: Konzept der Exceptions, try, throw, catch
  • Ein-/Ausgabe mittels Streams: Ein-/Ausgabe von eingebauten und benutzerdefinierten Datentypen, Formatierung, Files und Streams
  • Lineare Datenstrukturen: Sequentielle Listen, Feste Länge vs. dynamische Längenerweiterung, Suche (linear, binär), Sortieren (z.B. Quicksort); Verkettete Listen, einfach und doppelt verkettet; Stack (sequentielle Speicherung); Queue (sequentielle zirkuläre vs. verkettete Speicherung)
  • Nichtlineare Datenstrukturen: Allgemeine Bäume, Binärbäume, Suchbäume; 2-3-4-Bäume
  • Exemplarische Einführung in die Standard-Template-Library: Grundkonzepte der STL, vector- und list-Container, Iteratoren, STL-Algorithmen, Funktionsobjekte
  • Hash-Tabellen: lineares Sondieren, quadratisches Sondieren, Verkettung

 

Modulbeschreibung