Я читал учебник по элементарным структурам данных только для обзора - давно я написал свою собственную хэш-таблицу или красное / черное дерево:)
В любом случае, я столкнулся счто-то, что бросило меня немногоАвтор намерен использовать список инициализаторов для каждого члена (как можно было бы надеяться), но в этом единственном случае, когда он передает указатель на функцию хеширования, он предпочитает использовать оператор присваивания в конструкторе, а не устанавливатьвверх по указателю в списке инициализатора (и он также использует список инициализатора в этом коде):
template<class DataType>
HashTable<DataType>::HashTable(int (*hf)(const DataType&), int s)
: table(s)
{
hashfunc = hf;
}
, где:
int (*hashfunc)(const DataType&);
- закрытый член.
Мне было интересно, есть ли какая-то явная причина для этого выбора, и есть ли подводная лодка, которую он застрял здесь - или это просто случайная ошибка.Указатели на функции могут иметь интересный синтаксис, и мне было интересно, не вызывает ли это проблемы в этой области.