Objektorientierte Programmierung WS 2013/2014 - Datei restaurant.cc
#include <iostream>
class Mahlzeit {
};
class Pizza : public Mahlzeit {
public:
Pizza() {
std::cout << "Pizza gebacken." << std::endl;
}
};
class WokGericht : public Mahlzeit {
public:
WokGericht(const char* zutaten) {
std::cout << "Wok-Gericht zubereitet." << std::endl;
std::cout << "Mit " << zutaten << "." << std::endl;
}
};
class Restaurant {
protected:
Mahlzeit* mahlzeit;
virtual void bereiteMahlzeitZu() = 0;
virtual void nimmBestellungAuf() {
std::cout << "Ihre Bestellung bitte!" << std::endl;
}
virtual void serviereMahlzeit() {
std::cout << "Hier Ihre Mahlzeit. Guten Appetit!" << std::endl;
}
public:
void liefereMahlzeit() {
nimmBestellungAuf();
bereiteMahlzeitZu();
serviereMahlzeit();
}
};
class Pizzeria : public Restaurant {
public:
virtual void bereiteMahlzeitZu() {
mahlzeit = new Pizza();
}
};
class ChinaImbiss : public Restaurant {
public:
virtual void bereiteMahlzeitZu() {
mahlzeit = new WokGericht("Pilzen, Zwiebeln und Bambus");
}
};
int main() {
Pizzeria daToni;
daToni.liefereMahlzeit();
ChinaImbiss wokToGo;
wokToGo.liefereMahlzeit();
}
Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 10.12.2013


