template <class TElement> void GWarteschlange<TElement>::anzahl(const TElement& element) { int anz = 0; for (int i = 0; i < zaehler; i++) if (speicher [i % groesse] = element) anz++; return anz; };
class CErweiterung : public CKlasse<int> { public: void schreiben(const int w) { wert = w; }; };
(X) falsch Für Klassen, die als verkettete Listen
implementiert wurden, muß die Zuweisung überladen
werden.
Grund: muß nicht, aber sonst funktioniert sie falsch
(X) richtig Klassen in C++ sind besser geeignet als
abstrakten Datentypen mit Hilfe von Moduln in C.
Grund: ADTs verwirklichen keine Kapselung
(X) richtig Ein Element des Stapels ist lesbar, nachdem
alle jüngeren Elemente entfernt wurden.
Grund: nach dem LIFO-Prinzip
(X) falsch Prozeduren und Datentypen können als
Argumente für Prozeduraufrufe benutzt werden.
Grund: Datentypen nicht
(X) richtig Das Profil einer Menüprozedur definiert,
welche Rückrufprozeduren als Argumente geeignet sind.
Grund: Anzahl und Typ der Parameter
(X) richtig Durch die Verwendung von Zuweisung zwischen
ADT-Obejkten können Inkonsistenzen entstehen..
Grund: keine "Benachrichtigung" über
Zustandsänderung
(X) falsch Klassen werden immer von Modulen exportiert.
Grund: sie können auch lokal sein
(X) richtig Es gibt Module, die ohne den Aufruf einer
ihrer Operationen etwas tun.
Grund: Durch ihren Initialisierungsteil
#include "EMAIL.HPP" void ausgabe(char * text) { cour << text; } void main() { email(ausgabe); }
void CFeld::operator ++ () { for (int i = 0; i < groesse; i++) speicher[i]++; }
// MODUL.HPP class EBehaelter_voll {}; class EBehaelter_leer {}; void fuellen(const char* element) throw (EBehaelter_voll); void entleeren() throw(EBehaelter_leer); char* inhalt() throw(EBehaelter_leer); bool gefuellt();
// MODUL.CPP GBehaelter<char*> behaelter; void fuellen(const char* element) throw (EBehaelter_voll) { behaelter.fuellen(element); } void entleeren() throw(EBehaelter_leer) { behaelter.entleeren(); } char* inhalt() throw(EBehaelter_leer) { return behaelter.inhalt(); } bool gefuellt() { return behaelter.gefuellt(); }