Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

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