簡體   English   中英

C ++:C2783錯誤實例化類模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM