Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

функции с переменным количеством параметров - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с const http://www.cyberforum.ru/cpp/thread349832.html
Объясните пожалуйста разницу между вызовами двух функций: int func(const char *name) и int func(char *name) Я плохо понимаю - что дает этот спецификатор const? Что может произойти если...
C++ Как получить картинку с видео источника Люди пожалуйста подскажите... Как получить картинку с видео источника, меня интересует как на С++ visual studio получить входящий поток с веб камеры...(в крайнем случае на билдере) Я пытался на... http://www.cyberforum.ru/cpp/thread349463.html
C++ ffmpeg
Всем привет, помогите начинающему разобраться с такой проблемой: ffmpeg + sdl - очень долго приложение сидит в функции av_find_stream_info (от 2 до 10 секунд). В чем может быть проблема? Заранее...
как работать с каждой цифрой четырехзначного числа по отдельности. C++
Вот есть задача на с++. Но не знаю с чего начать... как работать с каждой цифрой четырехзначного числа по отдельности.
C++ Linker error http://www.cyberforum.ru/cpp/thread347929.html
При попытке скомпилить программу выдаёт ошибки: undefined reference to `InternetOpenA@20' undefined reference to `InternetConnectA@32' undefined reference to `HttpSendRequestA@20' undefined...
C++ движок или игра на C++ Здравствуйте, интерестно узнать ваше мнение..что будем лучше быстрее: 1. Создать большую игру на C++ Или 2. Написать прогу т.е. движок для содания игр на C++ ... подробнее

Показать сообщение отдельно
SalterOk
115 / 112 / 1
Регистрация: 02.06.2011
Сообщений: 280

функции с переменным количеством параметров - C++

11.09.2011, 00:46. Просмотров 3989. Ответов 29
Метки (Все метки)

для некоторого класса необходимо чтобы его конструктор принимал переменное количество параметров.
как это делается - понятно.
я использую va_list и т.д. из varargs.h
сложность возникла в том что с ее помощью нельзя узнать сколько параметров было передано
сейчас я делаю так
C++
1
2
3
4
5
    AddToList(frst);
va_list ap;
va_start(ap,frst);
while (AddToList(va_arg(ap,int)) > 0);
va_end(ap);
пока параметры больше нуля они добавляются в список с помощью AddToList(int);
но после последнего переданого параметра va_arg возвращает случайное число(наверно тож со стека)
его конечно можно отсеять проверкой на малый диапазов(обычно этот "мусор" очень большой по модулю) но есть вероятность что попадется малое значение и запишется в список - а это очень плохо!
собственно вопрос:
можно ли вообще как-то узнать сколько параметров было передано или еще каким-то образом правильно отсеять мусор?

P.S. как замену можно конечно первым параметром передавать количество аргументов(это все-же лучше чем случайный мусор) но тоже не очень удобно и надежно(можно не правильное количество передать и хотелось бы чтоб пользователь класса вообще не задумывался о количестве аргументов)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru