Szablony i zagnieżdżone klasy / struktury
Mam prosty pojemnik:
template <class nodeType> list {
public:
struct node {
nodeType info;
node* next;
};
//...
};
Teraz jest funkcja o nazwie_search
który przeszukuje listę i zwraca odniesienie do pasującego węzła. Teraz, kiedy mówię o typie powrotu funkcji, myślę, że tak powinno byćlist<nodeType>::node*
. Czy to jest poprawne? Kiedy definiuję funkcję w linii, działa ona doskonale:
template <class nodeType> list {
public:
struct node {
nodeType info;
node* next;
};
node* _search {
node* temp;
// search for the node
return temp;
}
};
Ale jeśli zdefiniuję funkcję poza klasą,
template <class nodeType> list<nodeType>::node* list<nodeType>::_search() {
//function
}
to nie działa. Kompilator informuje o błędzieExpected constructor before list<nodeType>::_search
lub coś. Błąd jest podobny do tego. Nie mam komputera, na którym mogę go teraz przetestować.
Każda pomoc jest szczerze doceniana.