|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.05.2013, 21:18 | #1 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
заранее не известно количество аргументов
С++
Ест функция принимает аргументы одного типа. проблема в том, что их количество заранее не известно и может быть любым. Как тут можно поступить? Можно конечно много раз перегрузить Но это много писанины. На сколько я знаю в джаве есть выход из такой ситуации. А в с++? |
18.05.2013, 21:46 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вспоминаем функцию printf к примеру.
но функции нужно как то узнать что аргументы кончились. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.05.2013, 21:49 | #3 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 639
|
ICQ: 677936656 Gmail: ekEmbed@gmail.com
|
18.05.2013, 22:10 | #4 | |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
компилятор на это не ругается
Код:
Цитата:
Код:
|
|
18.05.2013, 22:22 | #5 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
Может это? http://www.rsdn.ru/forum/cpp/418970.1
|
18.05.2013, 22:34 | #6 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Код:
|
18.05.2013, 23:12 | #7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
18.05.2013, 23:35 | #8 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Плюсы: самый эффективный, быстрый, надежный способ Плюсы: возможные ошибки детектятся времени компиляции. Минусы: новичкам тяжело писать и трудно читать такой код. 2. Имитация переменного количества аргументов. Выглядит она примерно так: Код:
Тип аргумента должен уметь принимать инициализироваться неким типом Empty, который символизирует "пустоту". Принимающая сторона должна уметь проанализировать: пуст ли этот конкретный аргумент, или нет. Плюсы: удобно применять для имитации переменного количества аргументов в мета-программировании в те времена, когда компиляторы ещё не поддерживали variadric template Минусы: код тяжело писать и читать новичкам. 3. Если аргументы одинаковые - функция может принимать вектор аргументов. Плюсы: простота реализации Минусы: возможные ошибки детектятся времени выполнения 4. Элипсы (тем самые, что тебе тут уже насоветовали) Плюсы: отсутствуют Минусы: возможные ошибки детектятся времени выполнения Минусы: легко допускают трудно обнаружаемые баги Минусы: есть ограничения: один из аргументов должен просигналить функции об окончании списка аргументов. Если по ничайности этого не сделать - принимающая сторона в принципе будет не способна обнаружить такую ошибку, не сможет поднять тревогу. Не запуститься аварийный блок кода. Последствия - не предсказуемы. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Известно количество детей, проживающих в каждой из квартир. Составить программу, находящую сколько детей в многодетных семьях | саша аврамов | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 22.03.2013 08:20 |
Найти все слова-числа, т.е. такие, которые состоят только из цифр. Известно, что количество цифр в каждом числе не более 9 (девяти | vikichocolate | Помощь студентам | 1 | 21.12.2011 00:12 |
Динмассив в цикле. Количество элементов заранее неизвестно. ASP.NET | Stilet | ASP.NET | 2 | 09.11.2010 10:30 |
Создать поочередно заранее неизвестное количество листов в книге | ShamanK | Microsoft Office Excel | 1 | 01.05.2010 18:40 |