私はC++が初めてです。これは私の宿題用で、以下は、この課題の作業を支援するために教授から提供されたコードですが、コンパイルされません...エラーが生成された行にマークを付けました。エラーメッセージは「テンプレート引数リストなしでテンプレート 'ハッシュ' を参照することはできません。".
修正方法がわかりません。誰かが私を正しい方向に向けることができますか?
(エラー メッセージとは無関係と思われる行を削除しました。)
クラスは次のように定義されます。
template <typename HashedObj>
class HashTable
{
public:
//....
private:
struct HashEntry
{
HashedObj element;
EntryType info;
HashEntry( const HashedObj & e = HashedObj( ), EntryType i = EMPTY )
: element( e ), info( i ) { }
};
vector<HashEntry> array;
int currentSize;
//... some private member functions....
int myhash( const HashedObj & x ) const
{
int hashVal = hash( x ); <<--- line with error
hashVal %= array.size( );
if( hashVal < 0 )
hashVal += array.size( );
return hashVal;
}
};
int hash( const HashedObj & key );
int hash( int key );
--- cpp ファイルの int hash() 関数と ----
int hash( const string & key )
{
int hashVal = 0;
for( int i = 0; i < key.length( ); i++ )
hashVal = 37 * hashVal + key[ i ];
return hashVal;
}
int hash( int key )
{
return key;
}