0
私は初期化しようとしている:テンプレートテンプレートパラメータ:コンストラクタの初期化
template <template <class> class T> class DoubleLinkedList{};
テンプレートで:
template DoubleLinkedList<Student>::DoubleLinkedList(typename Student<int> _data);
//error: Explicit instantiation of 'DoubleLinkedList' does not refer to a function template...
し、コンストラクタのコードは次のとおりです伝えようとすることを
template <template <class> class T> DoubleLinkedList<T>::DoubleLinkedList(T<class _T> _data){
head = NULL;
curr = NULL;
len = 0;
push(_data);
};
テンプレートクラス伝達しようとしている:
template <class _T> class Student
UP
もう一つ質問:私はクラスでクラスの構造を有しています。どうすれば彼に向けることができますか?
template <template <class> class T>
class DoubleLinkedList
{
DoubleLinkedList(T<int> _data);
// ...
};
template <template <class> class T>
DoubleLinkedList<T>::DoubleLinkedList(T<int> _data)
{
head = NULL;
// ...
push(_data);
}
は使用法:あなたは大体この欲しい
curr = curr::_data->__name; // wrong
を私はheader.cpp、main.cppに、constructor.cppなどを分割し、主なそれがある場合は、コンストラクタが表示されません初期化されていません(constructor.cpp内) ヘッダー: 'template class Student {// ..}' 'templa te class T> class DoubleLinkedList { DoubleLinkedList(T ) // ...} ' constructor.cpp: 'テンプレート<テンプレートクラスT> DoubleLinkedList :: DoubleLinkedList(T _data){// ...} ' 'テンプレートDoubleLinkedList :: DoubleLinkedList(Student _data); // - エラー ' –
sandr1x