Я реализую шаблонный класс HashTable
в C ++, и его прототип выглядит так:
template<class K, class T, unsigned int containerSize=CONTAINER_SIZE>
class LPHashTableChained{
........
unsigned int hashFunction(K& key);
}
Мой вопрос заключается в том, как я могу специализировать свой метод hashFunction()
, чтобы он вел себя по-другому, когда K
равенстроковый тип.
Я попытался реализовать функцию в правильном формате и со второй реализацией, в которой я опускаю аргумент class K
и помещаю строку как тип, как показано ниже:
1-я реализация:
template<class K, class T, unsigned int containerSize>
unsigned int LPHashTableChained<K,T,containerSize>::hashFunction(K& key){
}
2-я реализация:
template<class T, unsigned int containerSize>
unsigned int LPHashTableChained<string,T,containerSize>::hashFunction(const string& key){
}
Но я получаю ошибки компиляции !!!
Какой самый простой способ указать это hashFunction
при K= string
???
Спасибо