Opdracht 3.
De template class StackWithArray<T>
(stackarray.h
) is afgeleid van de abstract
template base class Stack<T>
(stack.h
).
Pas de file stackarray.h
zodanig aan dat de stack
een exception veroorzaakt bij stackoverflow, stackunderflow en andere errors.
Ontwerp een hiërarchie van exceptionclasses die het mogelijk maken om
een specifieke of generieke stackfout af te vangen. Geef de exceptionclasses
een memberfunctie print() die ervoor zorgt dat een passende
foutmelding wordt afgedrukt. Zorg ervoor dat in het volgende
(stacktest.cpp
) geval een juiste foutmelding
verschijnt:
#include <iostream>
using namespace std;
#include "stackarray.h"
int main() {
StackWithArray<int> s(10);
try {
s.push(2);
while (true)
s.pop();
} catch (StackError& e) {
// hier worden alle generieke StackError's opgevangen
e.print();
}
try {
while(true) {
s.push(3);
}
} catch (StackPushError& e) {
// hier wordt alleen de specifieke StackPushError opgevangen
e.print();
}
cin.get();
return 0;
}
|