|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||||||||||||||||
определение функции в ЗАГОЛОВОЧНОМ файле. В основном предполагается переопределение ТЕЛА этой функции. Как это сделать, не правя хидер?17.06.2011, 19:36. Показов 10070. Ответов 15
Метки нет (Все метки)
Сабж, а подробнее если в заголовочном файле hider.h описана функция, допустим так:
Так, а прототип функции должен остаться ПРЕЖНИМ [CPP]void f ();/CPP] Так, вот пользователь хидера должен сам определять пользоваться ли ему стандартной функцией f:
0
|
|||||||||||||||||||||
| 17.06.2011, 19:36 | |
|
Ответы с готовыми решениями:
15
В каком заголовочном файле находятся функции Sleep() и delay() и как правильно их использовать? Функции в заголовочном файле |
|
15 / 15 / 1
Регистрация: 21.12.2010
Сообщений: 55
|
|
| 17.06.2011, 19:43 | |
|
Хотелось бы взглянуть на то, что вы хотите сделать в оригинале, так как пример, который привели вы, решается, например, параметризацией функции.
0
|
|
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 17.06.2011, 19:54 | |
|
не инклудить хедер, хотя все одно быдлокод
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||
| 17.06.2011, 20:24 [ТС] | ||
|
Ну да, можно определить свой тип и пусть функция с ним работает. Но понимаете, я хочу свой код кинуть в люди и хочу упростить жизнь конечному пользователю, чтобы он не связывался с шаблонами и не определял свой тип, а просто переписал функцию и всё.
0
|
||
|
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
|
| 17.06.2011, 20:43 | |
|
тебе чё нужны две функции f содинаковыми параметрами но выполняющими разную работу? в данном случае это возможно, просто в хидере заключи в неймспейс и обращайся к ней header::f()
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 17.06.2011, 21:07 [ТС] | |
|
Вызов тоже осуществляется в хидере, получается, опять хидер править. Грустно, я-то разберусь, а вот челы нет.
0
|
|
|
Higher
|
||||||||||||
| 17.06.2011, 21:08 | ||||||||||||
Можно наоборот, если не поставить макрос, то будет работать из хедера. Для этого нужно #ifdef заменить на #ifndef
1
|
||||||||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 17.06.2011, 21:19 [ТС] | |
|
спасибо, пойдёт, но с натягом. Это получается в сопроводительной документации я должен указать, что для использования стандартной функции f(); необходимо помимо включения заголовочного файла в главном определить переменную //#define _USE_FUNC
Коряво. Ну, я наверное, многого хочу. Наверное, заставлю пользователя определять собственные типы чтобы воспользоваться шаблонами функции, тут надо подумать будет ещё.
0
|
|
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
||
| 17.06.2011, 21:53 | ||
![]() Открываем MSDN и читаем: чтобы использовать стандартные математические константы, надо определить имечко #define _USE_MATH_DEFINES
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 17.06.2011, 21:55 [ТС] | |
|
Не мне, а конечному пользователю моего проекта.
0
|
|
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
| 17.06.2011, 22:01 | |
|
kravam, дык мы ж с тобой - конечные пользователи продукта Микрософт! Нам и приходится использовать определенную ими константу.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 17.06.2011, 22:59 [ТС] | |
|
Так, алё, какая константа?
У меня нет никакой константы определённой мелкомягкими. Конечный пользователь- это не я, это чел, который будет использовать мой хидер. И чем меньше он будет делать движений, тем лучше Не по теме: Какой Багдад? Какая война?
0
|
|
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 17.06.2011, 23:07 | |
|
Ну а что ещё предложить? Ну есть ещё дедовский проверенный способ — callback-функции.
Пусть пользователь определяет какую хочет функцию и регистрирует её вызовом set_my_own_callback_function(my_func) Ну а не определит — будет использоваться функция по-умолчанию.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 17.06.2011, 23:22 [ТС] | ||||||
|
Нельзя ли код? Дело в том, что функция, которую я кропаю и есть callback и она вызывается в хидере так:
Вот я засомневался, а у меня функция ли обратного вызова? Ну да, её имя передаётся параметром в другую функцию и оттуда вызывается. Так ведь?
0
|
||||||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 17.06.2011, 23:29 | |
|
почему вообще в хедере определена функция?
1
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 17.06.2011, 23:50 [ТС] | |
|
потому что в хидере определён класс вместе с функцией, без которой он теряет смысл; класс следует определить в хидере и функцию там же.
Я могу, конечно, определить их в файлах кода, но что я скажу человеку, который будет их использовать? Вот тебе отдельно заголовочный файл, а вот файл реализации? Нет, со мной так не поступали; я скачал из инета класс Verylong, и реализованный и объявленный в одном хидере и очень этому рад, подключаю один хидер и не жужжу. Меньше движений.
0
|
|
| 17.06.2011, 23:50 | |
|
Помогаю со студенческими работами здесь
16
Из функции в заголовочном файле записать данные в структуру
Функции, которые оперируют с элементами формы в заголовочном файле Как это объяснить правильными словами ? В заголовочном файле я могу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|