引数リストが欠落しており、クラス テンプレート 'deque' の引数リストに 2 つ以上の仮パラメータがあります

クラス テンプレート 'deque' の引数リスト C/C++ が欠落しています

テンプレートクラスの両端子

template <typename T>
class deque
{
    
    
private:
    T data;
public:
    deque(T d = 0):data(d);
    ~deque();
};

deque::deque(T d = 0):data(d){
    
    }
deque<T>::~deque() {
    
    }

エラー: クラス テンプレート "deque" C/C++(441)、int deque(d = 0) のパラメーター リストがありません。理由
: テンプレート クラスはテンプレート パラメーターを持つクラスです。テンプレート クラス パラメーターをクラス名の後に追加する必要があります。インターフェースの実装、関数の戻り値についても同様

改訂:

template <typename T>
deque<T>::deque(T d = 0):data(d){
    
    }

template <typename T>
deque<T>::~deque(){
    
    }

関数の実装

template <typename T>
bool deque<T>::empty();

エラー: この関数はメンバー関数 "deque::empty" のクラスの外で再宣言できません。
理由: セミコロンが多く、中括弧がありません。宣言されているとみなされます
。 変更:

template <typename T>
bool deque<T>::empty(){
    
    }

テンプレート引数リストに仮パラメータが2つ以上ある場合

複合関係を実現します。上記の deque テンプレート クラスはコンポーネント部分であり、以下はコンテナ部分です: テンプレート クラス キュー、そのテンプレートの実パラメータには 2 つの仮パラメータがあります

template <class T,class Sequence = deque<T>>
class queue
{
    
    
private:
    Sequence c;
public:
    queue();
    ~queue();
};

関数の実装:

template <class T,class Sequence>
queue<T,Sequence>::queue(){
    
    }

template <class T,class Sequence>
queue<T,Sequence>::~queue(){
    
    }

おすすめ

転載: blog.csdn.net/weixin_44848852/article/details/120444654