Шаблонные объекты в шаблонах в C ++ - PullRequest
3 голосов
/ 03 апреля 2012

Я пытаюсь создать отсортированный список областей в изображении, используя шаблоны.Определенный здесь класс имеет свою реализацию ниже в том же файле.

template <typename RegionType>
class SortedType
{
    public:
        SortedType();
        ~SortedType();
        void makeEmpty();
        bool isFull() const;
        int lengthIs() const;
        void retrieveItem( RegionType&, bool& );
        void insertItem( RegionType  );
        void deleteItem( RegionType  );
        void resetList();
        bool isLastItem() const;
        void getNextItem( RegionType& );

    private:
        int length;
        NodeType<RegionType> *listData;
        NodeType<RegionType> *currentPos;
}; 

Определение структуры узла:

template <typename DataType>
struct NodeType
{
   DataType info;
   NodeType<DataType> *next;
};

, когда я пытаюсь скомпилировать код, я получаю ошибку: error: SortedType не является типом в строке, где я создаю прототипфункция для использования класса SortedType.Я думаю, что это как-то связано с шаблонами, которые я использую для класса SortedType, а класс NodeType вызывает какие-то проблемы, но я не уверен, как это исправить.

edit Прототип функции, в которой появляется первая ошибка:

int computeComponents(ImageType &, ImageType &, SortedType &);

У меня есть ошибки во всех прототипах функций, которые используют класс SortedType.NodeType объявляется перед SortedType.

1 Ответ

2 голосов
/ 03 апреля 2012
int computeComponents(ImageType &, ImageType &, SortedType &);

должно быть

template <typename RegionType>
int computeComponents(ImageType &, ImageType &, SortedType< RegionType > &);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...