[英]c++: C2783 error instanting class template
請提前為我的英語不好打擾。.我正在開發自己的STL,使用模板時遇到一些問題。 這是my List類的主要結構:
List.h
template <class T, class N>
class List{
public:
//public methods
private:
//private methods
}
好的,現在我需要實現一個成員函數“ sort”,該成員函數將對列表的元素進行排序,但是在這種排序函數中,我需要設置一個List對象。 我找到了以這種方式在另一個模塊中實現該功能的解決方案:
AuxiliaryFunction.h
#include<List.h>
template <class List>
void sort(Lista & l){
List A; //Works fine!
..
}
但是以這種方式,我必須通過執行以下操作來調用sort函數:
sort(ListObject);
代替
ListObject.sort();
我如何使用List類的成員函數來做同樣的事情? 如果List類是類似於以下代碼的抽象類,會有什么不同?
template <class T, class N>
class List{
public:
typedef T ElemType;
typedef P position;
virtual void create() = 0;
virtual bool empty() = 0;
..
void merge(Lista< T, N > &, Lista< T, N > &);
...
private:
//private methods
}
可以將模板template參數作為解決方案嗎? 我嘗試做這樣的事情
template <class T, class N>
class List{
...
template <template <class T,class N> class List> sort(){
List A;
..
}
}
但是在我編寫時出現了C2783錯誤(“無法推斷出列表的模板參數”)
ListObject.sort();
任何幫助將不勝感激:)
聽起來您正在尋找這樣的東西:
template <class T, class N>
class List{
...
void sort(){
List<T, N> A;
..
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.