我正在尝试使用模板在图像中创建区域排序列表。此处定义的类的实现在同一文件中更进一步。
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 > &);