Keine Angst auch diesmal wird es nicht kompliziert.
Also Aufgabe 2:
- Hier müssen 2 Klassen (PKW & Fahrrad), die Unterklassen von Klasse Fahrzeug sein sollen, erzeugt werden. Vererbung wird im Unterkapitel 2.2 ab Seite 32 im Skript angesprochen. Da diese Unterklassen unter demselben Methodennamen verschiedene Dinge tun sollen, kommt das Schlüsselwort virtual zum Einsatz. Mehr erfährt man dazu im PI2 Skript ab Seite 36
- Dort sollen einfach zu der Klasse PKW noch ein paar Eigenschaften und Methoden hinzugefügt werden. Dies ist analog zu den bisherigen Eigenschaften und Methoden. Die Methode dTanken(double dMenge = 0.0) soll jedoch einen Defaultparameter bekommen. Was dies ist und wie man das umsetzt wird auf Seite 21 im Skript erklärt. Bitte beachten dass alle Fahrzeuge "tanken" können müssen, also auch das Fahrrad. Die Methode vAbfertigung() ist dann noch für die Unterklassen PKW und Fahrrad neu zu implementieren. Innerhalb dieser Methoden sollte jedoch auch die Methode aus der Oberklasse Fahrzeug::vAbfertigung() aufgerufen werden
- Die Klassenstruktur soll um eine Methode dGeschwindigkeit() erweitert werden. Die sowohl in der Klasse Fahrzeug, als auch ggf. in den Unterklassen implementiert werden soll. Am einfachsten ist es innerhalb der Klasse Fahrzeug::dGeschwindigkeit() die maximale Geschwindigkeit zurückzugeben, in PKW nichts zu machen und einfach nur in der Klasse Fahrrad die Berechnung für die Geschwindigkeitsverminderung zu implementieren. Die Methode vAusgabe() für PKW und Fahrrad funktioniert analog zu vAbfertigung(). Erst wird in PKW::vAusgabe(), bzw. Fahrrad::vAusgabe(), Fahrzeug::vAusgabe() aufgerufen und dann die eigenen Ausgaben gemacht.
- Jetzt soll innerhalb EINES vectors sowohl Zeiger von PKW als auch von Fahrrad gespeichert werden. Also: vector
. Mehr zum vector steht auf Seite 76 im Skript. Beim Tanken nach 2,5 Stunden sollte beachtet werden, dass dies auch bei unterschiedlichen Zeitintervallen funktioniert. Also auch Intervalle, wie 0.4, 0.8 oder 0.9 testen, die nicht auf exakt 2,5 kommen. Und nicht mit == die Zeit vergleichen, sondern die Zeiten subtrahieren und dann mit einem frei gewählten kleinen Wert vergleichen.vecFhz;