我正在尝试扩展此类
template <class T> class dynamic_array
这不起作用
class merge_sort : public dynamic_array
扩展课程的正确方法是什么?
答案 0 :(得分:4)
您必须为模板提供参数。如果你想使用一个固定的参数,比如说int
,你就可以这样做:
class merge_sort : public dynamic_array< int >
如果您希望将扩展类保持为通用,那么您可以这样做:
template< class T >
class merge_sort : public dynamic_array< T >
请注意,合并排序是一种算法,因此作为自由函数而不是作为对象会更好。根据OOP,你应该问是merge_sort
一个dynamic_array
吗?对我来说,答案听起来像是没有,所以我会这样做:< / p>
template< class T >
void merge_sort( dynamic_array< T >& array ){ ... }
答案 1 :(得分:1)
template<class T>
class merge_sort : public dynamic_array<T>
模板参数必须指定给基类,但是您可以从完全限定的基类驱动。
class merge_sort : public dynamic_array<int>