Praktikumsanleitung

Praktikum 9

Öffnen Sie das Projekt in Visual Studio (Code).

Neben den Ihnen wohlbekannten Klassen Point und Rectangle gibt es nun zwei neue pure-virtual Klassen: Movable und Locatable. Da diese Klassen keine einzige implementierte Methode enthalten, werden diese auch “Interface” genannt.

Movable definiert die Methoden moveBy und moveTo. Wer dieses Interface implementiert kann also bewegt werden.

Locatable definiert die Methode getPosition und gibt einen unique_ptr mit der aktuellen Position zurück.

Aufgabe 1: Vererbung

Aufgabe 1.1

Lassen Sie Point von Movable ergeben und implementieren Sie in der Point-Klasse die beiden Methoden.

Aufgabe 1.2

Implementieren Sie für Point nun auch die eine Methode in Locatable

Aufgabe 1.3

Machen Sie dies analog für beide Interfaces innerhalb der Rectangle-Klasse.

Aufgabe 1.4

Werfen Sie einen Blick in die main.cpp. Machen Sie sich mit locate und move vertraut und führen Sie einige Tests mit Punkten und Rechtecken in der main-Funktion durch.

Aufgabe 2: Speicherverwaltung

Für die zweite Aufgabe verwenden wir die main2.cpp als Startdatei.

Führen Sie Schritt für Schritt die folgenden Dinge aus:

  1. Erzeugen Sie einen neuen Point an beliebiger Position in einem unique_ptr p.
  2. Verschieben Sie den Point p um (1,2)
  3. Geben Sie die Position von p aus
  4. Erzeugen Sie einen neuen unique_ptr q.
  5. Übertragen Sie den Besitz mittels std::move von p auf q.
  6. Ermitteln Sie die Position von p, was fällt Ihnen auf?
  7. Verwenden Sie .reset() vom unique_ptr q, um einen neuen Punkt zu erzeugen.
Zuletzt geändert: Dienstag, 1. Juni 2021, 01:18