I have defined an abstract class so I must use reference to that class... I also use a list with that type... the problem is when I intent to use the iterator as an argument to a function.
This is the snap:
Code:
void sustituir(CTermino *&termino)
//Dado un termino, le aplica la sustituciÃģn y lo entrega modificacdo
{
Parser parser;
if (!(invalida) && !(esSustitucionVacia()))
{
//Solicito la lista de parametros del termino, para atenderlo en caso de que sea una funcion
list<CTermino> * listaParametros = termino->getListaParametros();
list<CTermino>::iterator it = listaParametros->begin();
//Dependiendo del tipo de termino que sea, lo sustituyo
switch (!(termino->perteneceVariable(termino) || parser.esConstante(termino->getSimbolo()))) {
case false:
if ( mapaReemplazos.find(termino->getSimbolo()) != mapaReemplazos.end())
{
termino = (mapaReemplazos[termino->getSimbolo()]).second;
}
break;
case true:
while (it != listaParametros->end())
{
sustituir (*it);
it++;
}
termino->setListaParametros(*listaParametros);
break;
default: ;
}
delete listaParametros;
}
}
When I compile I got:
error: no matching function for call to 'CSustitucion::sustituir(CTermino&)'
note: candidates are: void CSustitucion::sustituir(CTermino*&)
Is it possible to do what I intent to do? What should I do in order to correct such compile error?
Thanks in advance!!!!!