子类中的模板基类方法模板参数特化

时间:2017-06-04 12:58:19

标签: c++ templates inheritance

我有一个看起来像这样的继承方案:

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)上动态调度。

是否有可能为上面的模板化参数提供方法实现,或者如果我做错了怎么能实现呢?

0 个答案:

没有答案