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