|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.04.2021, 00:10 | #1 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
Препроцессор и заполнение массива
Всем привет
Препроцессор и заполнение массива Помогите разобраться, почему массив не заполняется данными или заполняется но не выводится. Но скорее всего и не заполняются и не выводятся. Задача, сделать это именно так. создать три файла. в файле .h нужно: а) описать прототипы; б) сделать проверку определена ли константа, указывающая на тип данных ( #ifdef INTEGER ) в ) создать обобщающие имена функции, которым будет определена функция соответствующего типа в зависимости от константы , указанной в файле prog.cpp function.h Код:
Код:
prog.cpp Код:
|
05.04.2021, 08:36 | #2 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
какой массив? Где он должен заполняться?
|
05.04.2021, 10:14 | #3 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
Функции заполнения и вывода в файле
function.cpp Вызываются они в prog.cpp. Если убрать код препроцессора и вызывать их соответствующими именами функций, то все заполняется и выводится. Но суть программы заключается в том, что бы вызывать одним именем все 3 функции, определяю нужный код через препроцессор и проверку определена ли константа, указывающая на тип данных ( #ifdef INTEGER ) например. И эту проверку реализовать в function.h |
05.04.2021, 10:21 | #4 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
этот инклуд нельзя использовать внутри main
для данной задачи вообще дефайн не нужен, это решается шаблоном функции или лямбдой |
05.04.2021, 10:48 | #5 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
Код:
|
05.04.2021, 11:17 | #6 | |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
Цитата:
Ваша задача решена не по поставленному условию. Возможно в этом моя вина, я не стал тут вываливать полное условие, думал названия темы достаточно и по моим наброскам можно будет понять, что я хотел сделать. Я не вижу у вас в коде Препроцессор #define show ShowInt.... , #ifdef. Шаблонную функцию нельзя использовать. Должно быть 3 функции, для int, double и char. Но вызываться они должны одним именем. Вот полностью поставленная задача. Я здесь ограничился только заполнением и выводом. Нет смысла писать тут все функции. Нужно разобраться, как заставить программу работать хотя бы двумя функциями согласно условию. Код:
Последний раз редактировалось Farlep; 05.04.2021 в 11:19. |
|
05.04.2021, 11:36 | #7 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
это называется перегрузка - да, можно без шаблона, просто будет три дублирующиеся фунции с одинаковым именем, но разным типом аргументов (и снова дефайн не нужен )
задание, конечно, какое-то бессмысленное, но допустим. Тогда должно быть как-то так Код:
|
05.04.2021, 11:41 | #8 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
> и снова дефайн не нужен
Ну конечно не нужен, при выполнении всех задач, кроме случая темы препроцессор. Код:
|
05.04.2021, 11:55 | #9 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
Farlep, одновременно - не получится по условию задачи/
Кажется, я понял, что препод хочет: (но на будущее предупреждаю - это не нужно никогда использовать в программах. И вообще стараться никогда не использовать define) в main.cpp Код:
Код:
|
05.04.2021, 11:57 | #10 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
подправил вызовы
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Двумерные массивы Внимание! В задаче реализовать заполнение массива, вывод на экран исходного массива и измененного (если при реш | Гарри | Паскаль, 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 |