Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 30.11.2017
Сообщений: 2

Вызов функции с разным количеством аргументов

30.11.2017, 22:56. Показов 2041. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Функция MyFunc может принимать разное количество аргументов:
void MyFunc(int ArgCount, ...)
{
}

Может ли C++ такое:

1. prestart MyFunc // подготовка к вызову
2. push 1 // передали в MyFunc один int аргумент с значением 1 (каждый аргумент всегда будет int)
3. push 7 // передали в MyFunc второй int аргумент
4. start MyFunc // вызываем функцию, как если бы это было MyFunc(1, 7);

Можно ли так?
Ибо я не хочу делать так:

if (ArgCount == 1) MyFunc(1, var1);
else if (ArgCount == 2) MyFunc(2, var1, var2);
else if (ArgCount == 3) MyFunc(3, var1, var2, var3);
и тд =\
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2017, 22:56
Ответы с готовыми решениями:

Виртуальные функции с одинаковым именем и разным набором аргументов
Есть абстрактный базовый класс и пара наследников. class Base { public: vurtual void Func(int a); vurtual void Func(int...

Шаблон функции с переменным количеством аргументов
Добрый вечер, мне необходимо при помощи шаблона функции реализовать поиск минимального числа(тип данных не известен, количество чисел...

Функции с произвольным количеством и типом аргументов.
Начал изучать ф-ции с определенным количеством параметров и при изучении возник вопрос, а именно: #include <iostream> using...

6
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
30.11.2017, 23:00
Вы функцию писали? Передавайте туда контейнер и не страдайте.
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
30.11.2017, 23:01
Если все аргументы одного типа, то можно передавать массив/вектор.

Добавлено через 39 секунд
Цитата Сообщение от fast1 Посмотреть сообщение
Может ли C++ такое:
Нельзя.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
30.11.2017, 23:02
массивы для лохов что ли?
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
30.11.2017, 23:07
Цитата Сообщение от likehood Посмотреть сообщение
Нельзя.
Variadic function же
Update: а, понял. Невнимательно прочитал
0
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
30.11.2017, 23:09
oldnewyear,
У него на runtime argCount зависит вроде.
0
 Аватар для Herji
299 / 208 / 174
Регистрация: 11.05.2016
Сообщений: 655
30.11.2017, 23:28
Сейчас дурь напишу)

Теоретически что-то такое не подойдет под описание?
C++
1
2
3
4
5
void foo(bool runIt, int a, ...)
{
    static std::vector<int> myVector;
    if(runIt) {} else {};
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.11.2017, 23:28
Помогаю со студенческими работами здесь

Динамический вызов разных методов класса с разным количеством аргументов
Здравствуйте, возникла такая проблема. У меня есть класс в котором есть несколько методов которые принимают разное количество аргументов....

Три конструктора с разным количеством аргументов, какой использовать?
В 1-ом классе 3 конструктора, которые имеют разное кол-во аргументов(3 арг, 6 и 11). Теперь во 2-ом классе создан объект из 1-го, в...

Функции с неизвестным количеством аргументов
Давно хочу узнать больше о такой интересной, но мало освещённой теме, как функции с неизвестным количеством аргументов. Знаю лишь то, как...

Тип функции с любым количеством аргументов
Здравствуйте! Подскажите, могу ли я сделать такой тип, который хранит функции с любой комбинацией аргументов? Пробую вот так: ...

Странное поведение функции с переменным количеством аргументов
Честно говоря даже не знаю где проблема, надеюсь вы поможете разобраться. Есть функция LinkStr для соединения нескольких строк: //...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru