I tienen un contenedor simple:Plantillas y clases/estructuras anidadas
template <class nodeType> list {
public:
struct node {
nodeType info;
node* next;
};
//...
};
Ahora, hay una función llamada _search
que busca en la lista y devuelve una referencia al nodo que se correspondía. Ahora, cuando me refiero al tipo de devolución de la función, creo que debería ser list<nodeType>::node*
. ¿Es esto correcto? Cuando defino la función en línea, funciona perfectamente:
template <class nodeType> list {
public:
struct node {
nodeType info;
node* next;
};
node* _search {
node* temp;
// search for the node
return temp;
}
};
Pero, si defino la función fuera de la clase,
template <class nodeType> list<nodeType>::node* list<nodeType>::_search() {
//function
}
no funciona. El compilador da un error al decir Expected constructor before list<nodeType>::_search
o algo así. El error es algo similar a esto. No tengo una máquina en la que pueda probarlo actualmente.
Cualquier ayuda es sinceramente apreciada.
Más, muy geek, los detalles se pueden encontrar en las preguntas más frecuentes de C++ Lite: http://www.parashift.com/c++faq-lite/templates.html#faq-35.18 –
muchas gracias por la ayuda. funciona perfectamente ahora gracias de nuevo. –
Enlace actualizado para las preguntas frecuentes: https://isocpp.org/wiki/faq/templates#dependent-name-lookup-types – Ashe