我有一个看起来像这样的继承方案:
template <typename CollectionType>
class Sorter {
public:
virtual void sort(CollectionType &collection) = 0;
};
template <typename ElementType>
class VectorSorter : public Sorter<vector<ElementType>> {
...
};
然后,我添加了一个完全实现的类,如下所示:
template <typename T>
class VectorInsertionSorter : public VectorSorter<T> {
public:
void sort(vector<T> &collection) {
...
}
}
我通过工厂类创建一个完全专用的VectorInsertionSorter<int>
,该工厂类应该返回对VectorSorter<int>
的引用。
这使得无法调用
VectorInsertionSorter<int>::sort(vector<int> &collection)
方法,我认为会在Sorter::sort(CollectionType &collection)
上动态调度。
是否有可能为上面的模板化参数提供方法实现,或者如果我做错了怎么能实现呢?