117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
|
||||||
1 | ||||||
функции с переменным количеством параметров11.09.2011, 00:46. Показов 5213. Ответов 29
Метки нет (Все метки)
для некоторого класса необходимо чтобы его конструктор принимал переменное количество параметров.
как это делается - понятно. я использую va_list и т.д. из varargs.h сложность возникла в том что с ее помощью нельзя узнать сколько параметров было передано сейчас я делаю так
но после последнего переданого параметра va_arg возвращает случайное число(наверно тож со стека) его конечно можно отсеять проверкой на малый диапазов(обычно этот "мусор" очень большой по модулю) но есть вероятность что попадется малое значение и запишется в список - а это очень плохо! собственно вопрос: можно ли вообще как-то узнать сколько параметров было передано или еще каким-то образом правильно отсеять мусор? P.S. как замену можно конечно первым параметром передавать количество аргументов(это все-же лучше чем случайный мусор) но тоже не очень удобно и надежно(можно не правильное количество передать и хотелось бы чтоб пользователь класса вообще не задумывался о количестве аргументов)
0
|
11.09.2011, 00:46 | |
Ответы с готовыми решениями:
29
Функции с переменным числом параметров Функции с переменным количеством параметров Функции по переменным количеством параметров Массив в функции с переменным количеством параметров |
11.09.2011, 01:10 | 2 | |||||
Сообщение было отмечено как решение
Решение
7
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
11.09.2011, 08:22 | 3 |
0
|
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
|
|
11.09.2011, 13:38 [ТС] | 4 |
да очень жаль - так как мой компилятор(VS 2010) не понимает такой записи
в любом случае спасибо
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
11.09.2011, 16:03 | 7 |
Сообщение было отмечено как решение
Решение
Не уж то первая половина фразы является причиной для принятия во внимание второй её половины? Стандарт принят, в стандарте есть шаблоны с переменным числом аргументов, и в последних gcc компиляторах они реализованы. То, что этого ещё не сделал Microsoft - только его проблемы.
Не по теме: P.S. Сам юзаю студию, но в дополнение к ней всегда есть свеженькая версия mingw.
3
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
11.09.2011, 18:58 | 9 |
виндузовые проекты как правило ведут на msvc, так что логично учитывать возможности компилятора
0
|
Заблокирован
|
|
12.09.2011, 14:06 | 11 |
- недаром в printf и scanf есть строка формата аля "d%s%p" - посчитали сколько параметров приводить надо(в данном случае 3) и юзаем va_list. Вели в функцию в качестве доп аргумента строку формата и отталкиваемся от числа параметров в ней в чём проблема то????
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
12.09.2011, 14:14 | 12 |
Если параметров не много и их типы постоянны, то можно использовать конструктор с параметрами по умолчанию.
Использовать (...) в конструкторе, ИМО, не кошерно.)
0
|
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
|
|
12.09.2011, 16:52 [ТС] | 13 |
мне это не совсем подходит так как это по сути обвертка над динамическим массивом разного размера, глубины и типа.
а в конструктор собственно и передается информация о размерах и количестве
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
12.09.2011, 16:58 | 14 |
0
|
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
|
||||||
12.09.2011, 17:05 [ТС] | 16 | |||||
ну я уже собственно решил передавать первым параметром количество пока не Microsoft не реализует
стандарт как в примере niXman вот небольшой пример как я делаю:
я понимаю что это лучше но я это делаю для тренировки(первый шаблонный класс и т.д.) Добавлено через 1 минуту ну я уже так и делаю - реализация класса легче но не так удобно для использования
0
|
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
|
|
13.09.2011, 17:14 [ТС] | 19 |
это какой например?
без классов и всей их прелести?? работа с этим классом должна быть как можно больше похожа на обычный статический многомерный массив
0
|
║XLR8║
|
|
13.09.2011, 18:52 | 20 |
0
|
13.09.2011, 18:52 | |
13.09.2011, 18:52 | |
Помогаю со студенческими работами здесь
20
Функции с переменным количеством параметров в языке C ++ Функции с переменным количеством параметров, stdarg.h. Исправить код Шаблон функции с переменным количеством параметров и среднее арифметическое Шаблон с переменным количеством параметров Функция с переменным количеством параметров Функция с переменным количеством параметров Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |