我遇到了模板概念的麻烦。我的链表类是模板化的,我的哈希集也是如此。
在我的哈希集的私有变量中,我代表这样的集合:
LinkedList<T>* hashTab;
我收到了错误
expected member name or ';' after declaration specifiers
**LinkedList<T>*** hashTab;
这是我默认构造哈希集的方式
hashTab = new LinkedList[DEFAULT_CAPACITY];
capacity = DEFAULT_CAPACITY;
这些类位于同一文件夹中的单独头文件中。可能是造成这个错误的原因??
示例:
A.hpp
template<typename T>
class A{
public:
A();
};
B.hpp
#include "A.hpp"
template<typename T>
class B{
private:
A<T>* hashTab;
public:
B();
};
template <typename T>
B::B(){
hashTab = new A[10];
}
答案 0 :(得分:0)
在课堂外定义模板成员函数时,必须提供B
的模板参数,并且必须始终为成员A<T>*
提供这些参数:
template <typename T>
B<T>::B(){
hashTab = new A<T>[10];
}