|
17 / 17 / 5
Регистрация: 19.09.2012
Сообщений: 216
|
||||||
Шаблонная функция: в файле .h или .cpp25.10.2014, 19:17. Показов 16155. Ответов 10
Метки нет (Все метки)
Всем доброго времени суток... Начал читать про шаблоны, появились вопросы...
1. Как мне вывести реализацию addFix в cpp файл(мог перепутать терминологию и дабы не ругались, как правильно вынести то что в {} ), а то все время ошибки вылетают ?))) 2. Получаю соответственно ошибки при вызове функции с разными параметрами "Cannot convert 'TSystemObj *' to 'TTrans2Obmot *' и наоборот...". Как сделать так, чтобы функция могла приниматься объекты разных типов ? ![]()
0
|
||||||
| 25.10.2014, 19:17 | |
|
Ответы с готовыми решениями:
10
Как вызвать в основном .cpp файле тот или иной .cpp файл
|
|
Модератор
13768 / 10961 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
|
||||||
| 25.10.2014, 19:21 | ||||||
Сообщение было отмечено Fobes как решение
Решение
1
|
||||||
|
17 / 17 / 5
Регистрация: 19.09.2012
Сообщений: 216
|
||||||
| 25.10.2014, 19:30 [ТС] | ||||||
|
zss, благодарю, то что нужно ^_^ как теперь описание вывести в cpp файл ? >_<
0
|
||||||
|
Модератор
13768 / 10961 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
|
|
| 25.10.2014, 19:39 | |
|
В отдельный файл выносить нельзя.
Шаблон, ведь, не компилируется, а инстанцируется по фактическому значению параметров. Поэтому он должен присутствовать в том же файле, где вызывается. Поэтому поместите его в .h файл.
0
|
|
|
17 / 17 / 5
Регистрация: 19.09.2012
Сообщений: 216
|
|
| 25.10.2014, 19:39 [ТС] | |
|
zss, т.е. оставлять все описание в .h файле ?
0
|
|
|
Модератор
13768 / 10961 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
|
|
| 25.10.2014, 19:41 | |
|
Именно так!
1
|
|
|
17 / 17 / 5
Регистрация: 19.09.2012
Сообщений: 216
|
|
| 25.10.2014, 19:42 [ТС] | |
|
zss, эх
благодарю за разъяснения ^_^
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||||
| 25.10.2014, 19:54 | |||||||
|
Fobes, в cpp-файл вынести можно, но не нужно. Потому что в месте использования шаблона (в месте инстанцирования) должно быть доступно полное определение (иначе нельзя будет сгенерировать по шаблону функцию). Оставляй в h-файле как есть.
Добавлено через 11 минут
Ну и в случае наследования от TSystemObj или TTrans2Obmot код останется корректным.
1
|
|||||||
|
Вездепух
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
|
||
| 25.10.2014, 23:04 | ||
|
При этом определение шаблонного метода можно вынести из определения класса (чтобы не раздувать последнее), но все равно даже вынесенное из класса определение метода должно располагаться в .h файле.
0
|
||
|
Вездепух
12919 / 6787 / 1817
Регистрация: 18.10.2014
Сообщений: 17,169
|
|||||||||||
| 25.10.2014, 23:11 | |||||||||||
|
Чисто ради того, чтобы поумничать, добавлю, что определения шаблонных функций можно (и нужно) класть в .h файлы только пока эти определения зависят от каких-то нефиксированных шаблонных параметров. Но как только вы выполнили явную специализацию шаблона, т.е. зафиксировали все параметры шаблона, определение такой специализации становится "обычной" функцией: его можно только объявлять в .h файле, а определение идет в .cpp файл.
0
|
|||||||||||
| 25.10.2014, 23:11 | |
|
Помогаю со студенческими работами здесь
11
Шаблонная функция Шаблонная функция Шаблонная функция Шаблонная функция Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|