Aufgabe 1.

template <class TElement>
void GWarteschlange<TElement>::austragen() throw(Eschlange_leer) {
if (zaehler == 0)
	throw new ESchlange_leer();
else {
	leseindex = leseindex % groesse + 1;
	zaehler--;
}
};

Aufgabe 2:

class CVerkettbaresQuadrat : public Quadrat { public: 
	CVerkettbaresQuadrat* naechstes
};
CVerkettbaresQuadrat q1, q2, q3;
q1.naechstes = &q2; q2.naechstes = &q3;
// alternativ:
CVerkettbaresQuadrat* p1 = new CVerkettbaresQuadrat();
CVerkettbaresQuadrat* p2 = new CVerkettbaresQuadrat();
CVerkettbaresQuadrat* p3 = new CVerkettbaresQuadrat();
p1->naechstes = p2; p2->naechstes = p3;

Aufgabe 3:

Aufgabe 4.

#include "FOURIER.HPP"
void ausgabe_in_datei(CFGourier* daten) { datei << text; }
void fertig() {datei.close();};
void main() {
	datei.open();
	fourier(ausgabe_in_datei, fertig);
}

Aufgabe 5.

void austragen(TFarbe farbe) {
	vorhanden(farbe) = false;
}
void ist_vorhanden(TFarbe farbe) {
	return vorhanden(farbe);
}

Aufgabe 6.

class CReell : CVirtuell { public:
	virtual void ausgabe() {};
}
void main() {
	CReel objekt;
	objekt.fuellen('x');
	objekt.ausgabe();
}

Aufgabe 7.

// MODUL.HPP
typedef GBehaelter<float> TFloat;
void fuellen(TFloat behaelter, const float* element) throw (EBehaelter_voll);
void entleeren(TFloat behaelter) throw(EBehaelter_leer);
float inhalt(TFloat behaelter) throw(EBehaelter_leer);
bool gefuellt(TFloat behaelter);
// MODUL.CPP
void fuellen(TFloat behaelter, const float* element) throw (EBehaelter_voll) { 
	behaelter.fuellen(element); }
void entleeren(TFloat behaelter) throw(EBehaelter_leer) { behaelter.entleeren(); }
float inhalt(TFloat behaelter) throw(EBehaelter_leer) { return behaelter.inhalt(); }
bool gefuellt(TFloat behaelter) { return behaelter.gefuellt(); }