我正在尝试使用模板在图像中创建区域排序列表。此处定义的类的实现在同一文件中更进一步。

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;
};

当我尝试编译代码时,出现以下错误:错误:我在原型(prototype)函数的地方使用SortedType类的行上的SortedType不是类型。我认为这与我用于SortedType类的模板有关,而NodeType类引起了某种问题,但我不确定如何解决。

编辑
出现第一个错误的原型(prototype)函数是:
int computeComponents(ImageType &, ImageType &, SortedType &);

在所有使用SortedType类的函数原型(prototype)中,我都有错误。 NodeType在SortedType之前声明。

最佳答案

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

应该
template <typename RegionType>
int computeComponents(ImageType &, ImageType &, SortedType< RegionType > &);

09-08 04:59