最初に定義した
class Hash
{
};
次に、ハッシュの特殊化。
template <class T>
class Hash<int, T>
{
public:
Hash(int slotN = 11);
bool insert(int key, T val);
bool remove(int key);
bool contains(int key);
bool query(int key, T& val) ;
protected:
// Basic Variables of the Hash Model.
list<int>* slot;
list<T>* slotVal;
int slotN;
};
この特殊化されたバージョンの Hash を使用して、別の特殊化を実装したいと思います: 文字列値キーのハッシュ。
template <class T>
class Hash<string, T> : public Hash<int, T>
{
public:
Hash(int slotN);
bool insert(string key, T val);
bool remove(string key);
bool contains(string key);
bool query(string key, T& val) ;
private:
// Calculate the String's Hash Key.
int str2key( string key);
};
しかし、クラス Hash のフィールドにアクセスできないようです。なんで?