Pizzarezept 2.0
-
// Pizza.cc (Pizza fuer halbes Blech) ///////////////////////// #include "MassEinheiten.h" #include "ZeitEinheiten.h" #include "Gewuerze.h" #include "MilchProdukte.h" #include "Gemuese.h" #include "FleischProdukte.h" #include "GetreideProdukte.h" #include "KuechenGeraete.h" #include "Gemenge.h" #include "Dose.h" #include // PizzaTeig ////////////////////////////////////////////////// typedef Gemenge TeigMasse; class PizzaTeig : public TeigMasse { public: PizzaTeig(); }; PizzaTeig::PizzaTeig() : TeigMasse() { *this += Quark(Gramm(100)) + Milch(EssLoeffel(4)) + Mehl(Gramm(100)) + Oel(EssLoeffel(4)) + Salz(TeeLoeffel(0.5)); verruehre(); TeigMasse hilfsTeig; hilfsTeig += Mehl(Gramm(100)) + BackPulver(Gestrichener_TeeLoeffel(3)); hilfsTeig.verruehre(); *this += hilfsTeig; verknete(); while (klebrig()) { *this += Mehl(Gramm(10)); verknete(); } } // PizzaBelag ///////////////////////////////////////////////// class PizzaBelag : public Set { public: PizzaBelag(); }; PizzaBelag::PizzaBelag() : Set() { Dose dieChampignons; Champignon einChampignon; for (float groesse = 0; groesse < EssLoeffel(3); groesse += einChampignon.groesse()) { einChampignon = dieChampignons.entnehme_eins(); *this += einChampignon; } Zwiebel eineZwiebel; *this += eineZwiebel.schaele().schneide(); for (int scheiben = 1; scheiben <= 6; scheiben++) { *this += Scheibe; } *this += Salz(TeeLoeffel(0.5)) + Pfeffer(TeeLoeffel(0.5)) + Oregano(TeeLoeffel(1)); } // Pizza ////////////////////////////////////////////////////// class Pizza : Backbares_Objekt { private: PizzaTeig derTeig; PizzaBelag derBelag; BackBlech dasBlech; public: Pizza(const PizzaTeig& einTeig, const BackBlech& einBlech); PizzaTeig teig() const { return derTeig; } PizzaBelag belag() const { return derBelag; } BackBlech blech() const { return dasBlech; } Pizza& belege_mit(const Set& belag) { derBelag += belag; return *this; } }; Pizza::Pizza(const PizzaTeig& einTeig, const BackBlech& einBlech) : Backbares_Objekt(), derTeig(einTeig), derBelag(), dasBlech(einBlech) { derTeig.rolle_an(); dasBlech.belege_mit(derTeig); Set grundBelag; grundBelag += Oel(EssLoeffel(2)) + Ketchup(EssLoeffel(4)); belege_mit(grundBelag); } // main() ///////////////////////////////////////////////////// int main() { PizzaTeig meinTeig; PizzaBelag meinBelag; BackOfen meinOfen; BackBlech meinBlech; meinBlech.fetten(); Pizza meinePizza(meinTeig, meinBlech); meinePizza.belege_mit(meinBelag); meinOfen.backe(meinePizza, Minuten(25)); for (int scheibletten = 1; scheibletten <= 2; scheibletten++) { ChesterScheiblette eineScheiblette; meinePizza.belege_mit(eineScheiblette); } meinOfen.backe(meinePizza, Minuten(5)); return meinePizza.zustand() == Pizza::verbrannt ? -1 : 0; } // end of Pizza.cc ////////////////////////////////////////////
-
Aus welchem Pattern-Buch ist das?
-
Design 2.0 Patterns 2.0
-
2.0 / 10.0