2011-11-04 5 views
0

나는이수퍼 클래스에서 하위 클래스 만들기?

class merge_sort : public dynamic_array 

클래스를 확장 할 수있는 적절한 방법은 무엇입니까 작동하지 않습니다

template <class T> class dynamic_array 

이 클래스를 확장하기 위해 노력하고있어?

+0

'dynamic_array'은 (는) 형식이 아닌 템플릿입니다. 유형에서만 상속받을 수 있습니다. –

답변

4

템플릿에 대한 인수를 제공해야합니다. 당신이 고정 인수를 사용하려는 경우, 당신은 할 것, int 말 : 대신 일반으로 확장 한 클래스를 유지하려면

class merge_sort : public dynamic_array<int> 

, 당신은 할 것 : 병합

template< class T > 
class merge_sort : public dynamic_array<T> 

주 정렬은 알고리즘이므로 객체가 아닌 자유 함수로 사용하는 것이 좋습니다. OOP에 따르면 merge_sort이고 dynamic_array일까요?는 나에게 대답은 없는으로 소리, 그래서 대신에 이런 짓을 했을까 :

template< class T > 
void merge_sort(dynamic_array<T>& array){ ... } 
1
template<class T> 
class merge_sort : public dynamic_array<T> 

템플릿 인수는 그러나 완전히 유자격 기본 클래스를 형성 구동 할 수있는 기본 클래스에 지정해야합니다.

class merge_sort : public dynamic_array<int> 
관련 문제