Ho un semplice contenitore:Modelli e classi annidate/strutture
template <class nodeType> list {
public:
struct node {
nodeType info;
node* next;
};
//...
};
Ora, c'è una funzione chiamata _search
che cerca la lista e restituisce un riferimento al nodo che ha trovato. Ora, quando mi riferisco al tipo di ritorno della funzione, penso che dovrebbe essere list<nodeType>::node*
. È giusto? Quando ho definire la funzione inline, funziona perfettamente:
template <class nodeType> list {
public:
struct node {
nodeType info;
node* next;
};
node* _search {
node* temp;
// search for the node
return temp;
}
};
Ma, se io definisco la funzione di fuori della classe,
template <class nodeType> list<nodeType>::node* list<nodeType>::_search() {
//function
}
non funziona. Il compilatore dà un errore dicendo Expected constructor before list<nodeType>::_search
o qualcosa del genere. L'errore è qualcosa di simile a questo. Non ho una macchina su cui posso testarlo al momento.
Qualsiasi aiuto è sinceramente apprezzato.
Più, molto geek, i dettagli possono essere trovati nel C++ FAQ Lite: http://www.parashift.com/c++-faq-lite/templates.html#faq-35.18 –
grazie mille per l'aiuto .. funziona perfettamente ora. grazie ancora .. –
Link aggiornato per le FAQ: https://isocpp.org/wiki/faq/templates#dependent-name-lookup-types – Ashe