Riprendo questa discussione perchè sto creando una classe eccezioni per gestire alcuni errori della lista:
premetto che anche se non ho implementato tutte le funzioni della lista ma solo quelle tipiche di uno stack, ho comunque simulato creando una classe ulteriore chiamata stack che ereditasse da lista.
quindi abbiamo :
#include "lista.h"
template <class t>
class stack:public lista<t>{
public:
stack(){new lista<t>();}
void push(const t& value){insertFront(value);}
bool pop (){if(lista<t>::removeFront())return true;return false;}
void printback(){lista<t>::print();}
};
e la classe eccezioni:
template <class t>
class eccezione{
public:
eccezione (stack<t> s){
while (s.getDim>5)
s.pop();
}
};
che in pratica non fa altro che eseguire tante pop fin quando la lista ha al massimo 5 nodi
l'errore che riscontro sta nel main, mi sono scervellato tutto il pomeriggio ma non ne vengo a capo:
int main() {
try{
stack<char> l;
l.push('g');
l.push('e');
l.push('n');
l.push('n');
l.push('a');
l.push('a');
l.pop();
l.print();
if (l.isFull())
throw eccezione( l);
}
catch (eccezione & e){
cout<<"Eccezione eseguita";
}
return 0;
}
missing template arguments before '(' token