KANN MIR BITTE JEMEND BEI DIESER AUFGABE HELFEN?
HABE ALLES GESCHAFFT BIS AUF überladenen Operatoren ++ und --
und weis leider nicht wie ich die ausgabe cout << *actualDevice hinbekomme.
Problemstellung:
Rechner übernehmen immer mehr Steuerungsaufgaben im Haushalt; sie steuern die Waschmaschine, den Herd oder die Heizung. Besonders weit entwickelt führt das zum sogenannten "Smart House". Realisieren Sie eine Fernbedienung für ein solches Smart House; simulieren Sie dabei die einzelnen Funktionen ausgewählter Geräte.
Technische Hinweise: Entwerfen Sie eine Vererbungshierarchie bestehend aus einer Basisklasse GeneralDevice und drei abgeleiteten Klassen (spezielle Geräte: Coffeemachine, Radio, Heating). Sehen Sie neben Konstruktor und Destruktor die überladenen Operatoren ++ und -- zum Inkrementieren und Dekrementieren eines speziellen Attributes (int numberOfCups bei Kaffeemaschine, double volume bei Radio, float temperature bei Heizung) jedes Geräts vor. Außerdem soll eine einfache Ausgabe des Zustandes des jeweiligen Objektes (deviceName sowie numberOfCups, volume oder temperature) unter Verwendung der Anweisung cout << *actualDevice; möglich sein. Das Zusammenspiel von Konstruktoren und Destruktoren der Basisklasse und der Subklassen soll durch sinnvoll gewählte Ausgaben bei ihrem jeweiligen Aufruf verdeutlicht werden.
SmartHouse
Remote Control
+ laut/warm/...
- leise/kalt/...
1 Tchibo KM 3
2 Radio WZ
3 Radio Küche
4 Heizung OG
5 Heizung EG
? Übersicht
0 aus
Entwerfen Sie ein Anwendungsprogramm, das im Dialog die Tasten der Fernbedienung abfragt und die entsprechende Aktion auslöst (= polymorpher Methodenaufruf des betreffenden Objekts). Verwenden Sie dabei eine Zeigervariable actualDevice, die aus einem Array von Gerätezeigern versorgt wird.
Sollte etwa so aussehen
Für die Ausgabe
danach habe ich << operator benutzt.
HABE ALLES GESCHAFFT BIS AUF überladenen Operatoren ++ und --
und weis leider nicht wie ich die ausgabe cout << *actualDevice hinbekomme.
Problemstellung:
Rechner übernehmen immer mehr Steuerungsaufgaben im Haushalt; sie steuern die Waschmaschine, den Herd oder die Heizung. Besonders weit entwickelt führt das zum sogenannten "Smart House". Realisieren Sie eine Fernbedienung für ein solches Smart House; simulieren Sie dabei die einzelnen Funktionen ausgewählter Geräte.
Technische Hinweise: Entwerfen Sie eine Vererbungshierarchie bestehend aus einer Basisklasse GeneralDevice und drei abgeleiteten Klassen (spezielle Geräte: Coffeemachine, Radio, Heating). Sehen Sie neben Konstruktor und Destruktor die überladenen Operatoren ++ und -- zum Inkrementieren und Dekrementieren eines speziellen Attributes (int numberOfCups bei Kaffeemaschine, double volume bei Radio, float temperature bei Heizung) jedes Geräts vor. Außerdem soll eine einfache Ausgabe des Zustandes des jeweiligen Objektes (deviceName sowie numberOfCups, volume oder temperature) unter Verwendung der Anweisung cout << *actualDevice; möglich sein. Das Zusammenspiel von Konstruktoren und Destruktoren der Basisklasse und der Subklassen soll durch sinnvoll gewählte Ausgaben bei ihrem jeweiligen Aufruf verdeutlicht werden.
SmartHouse
Remote Control
+ laut/warm/...
- leise/kalt/...
1 Tchibo KM 3
2 Radio WZ
3 Radio Küche
4 Heizung OG
5 Heizung EG
? Übersicht
0 aus
Entwerfen Sie ein Anwendungsprogramm, das im Dialog die Tasten der Fernbedienung abfragt und die entsprechende Aktion auslöst (= polymorpher Methodenaufruf des betreffenden Objekts). Verwenden Sie dabei eine Zeigervariable actualDevice, die aus einem Array von Gerätezeigern versorgt wird.
Sollte etwa so aussehen
Code:
vector<GeneralDevice *>geraete(5);
Für die Ausgabe
Code:
for(int i=0;i<5;i++)
{
cout<<*geraete[i]; //Eine Printmethode (Rein Virtuell) in der Basisklasse soll vorhanden
//und jeweil auch print methoden in den abgeleiteten Klassen.
}
danach habe ich << operator benutzt.
Code:
ostream& operator<<(ostream& output,const GeneralDevice & device )
{
output<<device.print(); //Dies klappt bei mir nicht
}