![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
![]()
Всем привет
Препроцессор и заполнение массива Помогите разобраться, почему массив не заполняется данными или заполняется но не выводится. Но скорее всего и не заполняются и не выводятся. Задача, сделать это именно так. создать три файла. в файле .h нужно: а) описать прототипы; б) сделать проверку определена ли константа, указывающая на тип данных ( #ifdef INTEGER ) в ) создать обобщающие имена функции, которым будет определена функция соответствующего типа в зависимости от константы , указанной в файле prog.cpp function.h Код:
Код:
prog.cpp Код:
|
![]() |
![]() |
![]() |
#2 |
фрилансер, препод.
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,044
|
![]()
какой массив? Где он должен заполняться?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
![]()
Функции заполнения и вывода в файле
function.cpp Вызываются они в prog.cpp. Если убрать код препроцессора и вызывать их соответствующими именами функций, то все заполняется и выводится. Но суть программы заключается в том, что бы вызывать одним именем все 3 функции, определяю нужный код через препроцессор и проверку определена ли константа, указывающая на тип данных ( #ifdef INTEGER ) например. И эту проверку реализовать в function.h |
![]() |
![]() |
![]() |
#4 |
фрилансер, препод.
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,044
|
![]()
этот инклуд нельзя использовать внутри main
для данной задачи вообще дефайн не нужен, это решается шаблоном функции или лямбдой |
![]() |
![]() |
![]() |
#5 |
фрилансер, препод.
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,044
|
![]() Код:
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
![]() Цитата:
Ваша задача решена не по поставленному условию. Возможно в этом моя вина, я не стал тут вываливать полное условие, думал названия темы достаточно и по моим наброскам можно будет понять, что я хотел сделать. Я не вижу у вас в коде Препроцессор #define show ShowInt.... , #ifdef. Шаблонную функцию нельзя использовать. Должно быть 3 функции, для int, double и char. Но вызываться они должны одним именем. Вот полностью поставленная задача. Я здесь ограничился только заполнением и выводом. Нет смысла писать тут все функции. Нужно разобраться, как заставить программу работать хотя бы двумя функциями согласно условию. Код:
Последний раз редактировалось Farlep; 05.04.2021 в 11:19. |
|
![]() |
![]() |
![]() |
#7 |
фрилансер, препод.
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,044
|
![]()
это называется перегрузка - да, можно без шаблона, просто будет три дублирующиеся фунции с одинаковым именем, но разным типом аргументов (и снова дефайн не нужен
![]() задание, конечно, какое-то бессмысленное, но допустим. Тогда должно быть как-то так Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
![]()
> и снова дефайн не нужен
Ну конечно не нужен, при выполнении всех задач, кроме случая темы препроцессор. Код:
|
![]() |
![]() |
![]() |
#9 |
фрилансер, препод.
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,044
|
![]()
Farlep, одновременно - не получится по условию задачи/
Кажется, я понял, что препод хочет: (но на будущее предупреждаю - это не нужно никогда использовать в программах. И вообще стараться никогда не использовать define) в main.cpp Код:
Код:
|
![]() |
![]() |
![]() |
#10 |
фрилансер, препод.
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,044
|
![]()
подправил вызовы
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Двумерные массивы Внимание! В задаче реализовать заполнение массива, вывод на экран исходного массива и измененного (если при реш | Гарри | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.06.2015 09:45 |
Одномерные массивы Внимание! В задаче реализовать заполнение массива, вывод на экран исходного массива и измененного (если при ре | Гарри | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 25.06.2015 08:55 |
Заполнение listbox значениями из массива. Заполнение массива. | Gnaqeaz | C# (си шарп) | 9 | 23.10.2014 07:53 |
Заполнение массива | Hrum | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 24.11.2012 00:54 |
Заполнение массива | Alex_Mason | Общие вопросы Delphi | 2 | 07.12.2010 22:58 |