クラス テンプレート '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(){
}