|
Заблокирован
|
|||||||||||||||||||||
Шаблоны. Хеш-функция26.05.2012, 21:54. Показов 6173. Ответов 18
Метки нет (Все метки)
Добрые день.
Есть задание сделать телефонную книгу. Поиск в базе сделать через хеш-функцию. name - фамилия абонента. num - номер телефона Делал вот так () :
Далее реализую Хеш-функцию. Прототип.
Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall List<char *,int>::List<char *,int>(void)" (??0?$List@PADH@@QAE@XZ) в функции _main Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall List<char *,int>: ush_back(char *,int)" (?push_back@?$List@PADH@@QAEXPADH@Z) в функции _mainОшибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall List<char *,int>: rint(void)" (?print@?$List@PADH@@QAEXXZ) в функции _mainОшибка 4 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall List<char *,int>::~List<char *,int>(void)" (??1?$List@PADH@@QAE@XZ) в функции _main Почему так происходит? Ведь заголовочные файлы включены. Методы в разделе public. Обращение через экземпляр класса. Все вроде должно работать. И еще вопрос, подобная реализация хеширования информации имеет право на жизнь ?
0
|
|||||||||||||||||||||
| 26.05.2012, 21:54 | |
|
Ответы с готовыми решениями:
18
Хеш функция Хеш функция Хеш-функция, двойное хеширование |
|
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
| 27.05.2012, 00:19 | |
|
Реализацию List засунь в List.h в конец. Некоторые компиляторы не справляются с компиляцией и линковкой кода шаблона, когда он в нескольких файлах.
0
|
|
|
Заблокирован
|
|
| 27.05.2012, 10:03 [ТС] | |
|
Благодарю, все работает.
Как-то этот момент упускают в учебниках. А как быть тогда с сокрытием реализации кода, если допустим код распространяется в библиотеке?
0
|
|
|
Заблокирован
|
|
| 27.05.2012, 10:23 [ТС] | |
|
Будьте добры, подскажите еще такой момент.
В функцию добавления элемента в список я передаю указатель. Поэтому получается такая ситуация, что при добавлении в список во всех элементах списка строка Name указывает на одну и ту же область памяти. То есть по сути имена не сохраняются, сохраняется только последнее введенное имя. Как можно переписать функцию, чтобы под каждое имя выделялась своя область памяти, но при этом функция оставалась шаблонной ?
0
|
|
|
Higher
|
||
| 27.05.2012, 14:31 | ||
|
Возможно, вы просто неправильно пользуетесь словом export(либо вообще им не пользуетесь). P.S. еще один компилятор вспомнил - Intel c++.
0
|
||
|
|
||||||||||||||||||
| 27.05.2012, 15:14 | ||||||||||||||||||
Как я понимаю export надо писать в h-файле перед объявлением шаблона ? Добавлено через 20 минут Заголовок:
0
|
||||||||||||||||||
|
Заблокирован
|
|||||||||||
| 27.05.2012, 16:27 [ТС] | |||||||||||
|
Сделал без шаблонов, так как смысла в данном конкретном случае в них нет.
Подскажите пожалуйста насчет освобождения памяти. В каком месте у меня возможна утечка и как лучше всего сделать.
0
|
|||||||||||
|
|
||||||
| 27.05.2012, 16:40 | ||||||
Добавлено через 3 минуты Как вариант в структуре Node сделай деструктор в котором он не только будет удалять себя, но и элемент next.(!=NULL) в итоге delete head вызовет цепную реакцию.
0
|
||||||
|
Заблокирован
|
|||||||
| 27.05.2012, 18:33 [ТС] | |||||||
|
Спасибо за ответ! Потому и спросил, что удаляю только крайние узлы, значит то, что в середине остается занято. Если вас правильно понял. должно быть что-то типа этого:
Если да, то не подходит. компилятор пишет: Ошибка 1 error C2523: List::~Node: несовпадение тегов деструктор
0
|
|||||||
|
|
|||||||||||
| 27.05.2012, 18:38 | |||||||||||
0
|
|||||||||||
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
||||||||||||
| 27.05.2012, 18:41 | ||||||||||||
а в деструкторе нода удалять только то, что выделяли в конструкторе:
1
|
||||||||||||
|
Заблокирован
|
|||||||||||||
| 27.05.2012, 20:15 [ТС] | |||||||||||||
|
Именно поэтому объявление
0
|
|||||||||||||
|
Заблокирован
|
||
| 27.05.2012, 21:02 [ТС] | ||
|
Еще раз большое спасибо за замечание, сейчас исправлю.
0
|
||
| 27.05.2012, 21:02 | |
|
Помогаю со студенческими работами здесь
19
Объясните как работает хеш-функция Хеш-функция и вывод в ассоциативный массив Хеш-функция и вывод в ассоциативный массив Нужна хеш-функция для программы на языке С++ Метод открытого хеширования и хеш-функция, основанная на методе деления с остатком Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|