четверг, 17 марта 2011 г.

Ошибка expected constructor, destructor, or type conversion before ‘*’ шаблнный метод, вложенный класс

template< class T >
class DblLinkedList{
     ...
private:
     class Node{
          ...
    };
     Node* getNodeByIndex(int index);
};

...

template<class T>
DblLinkedList<T>::Node* DblLinkedList<T>::getNodeByIndex(int index){}

Компилятор выдает ошибку следующего содержания:

expected constructor, destructor, or type conversion before ‘*’

Решение:

template<class T>
typename DblLinkedList<T>::Node* DblLinkedList<T>::getNodeByIndex(int index){}

В данном случае необходимо "подсказать" компилятору что DblLinkedList::Node* это определение указателя на тип, а не ошибочное определение конструктора для класса Node