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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
anna93
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 9
#1

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

15.01.2013, 06:26. Просмотров 765. Ответов 11
Метки нет (Все метки)

Кто силен в теории, ответьте, пожалуйста:

Как запрограммировать функцию со сменным количеством параметров?

Как правильно работать с данными внутри функции?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2013, 06:26     Как запрограммировать функцию со сменным количеством параметров
Посмотрите здесь:

Написать функцию со сменным числом параметров для перевода чисел из двичной системы счисления в троичную C++
C++ Написать функцию со сменным числом параметров
C++ Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран.
C++ подскажите плз функцию с неограниченным количеством параметров
Функции по переменным количеством параметров C++
Функция со сменным числом параметров C++
C++ работа с функциями со сменным числом параметров
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
396 / 389 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
15.01.2013, 07:48     Как запрограммировать функцию со сменным количеством параметров #2
1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <algorithm>
#include <initializer_list>
#include <iostream>
#include <iterator>
 
template < typename T >
void func(const std::initializer_list<T>& lst)
{
    std::copy(lst.begin(), lst.end(), std::ostream_iterator<int>(std::cout, " "));
}
 
int main()
{
    func({ 1, 2, 3, 4, 5 });
}
2. Хз. Вопрос не понятный
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
15.01.2013, 09:59     Как запрограммировать функцию со сменным количеством параметров #3
Пaтрик, думаю имелось ввиду это
C++
1
void func (int count, ...) {}
solmaxa
17 / 8 / 1
Регистрация: 06.01.2013
Сообщений: 163
15.01.2013, 10:01     Как запрограммировать функцию со сменным количеством параметров #4
1. Как запрограммировать функцию со сменным количеством параметров?
можно передавать один параметр массив. В массиве может быть уже несколько параметров (элементов массива).
Пaтрик
396 / 389 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
15.01.2013, 10:04     Как запрограммировать функцию со сменным количеством параметров #5
Kastaneda, просто я в вашем варианте не особо секу, поэтому предложил вариант с initializer_list как один из возможных.
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
15.01.2013, 10:32     Как запрограммировать функцию со сменным количеством параметров #6
Цитата Сообщение от Пaтрик Посмотреть сообщение
Kastaneda, просто я в вашем варианте не особо секу
Это как раз класический пример функции с переменным числом аргументов, а твой (мы же на "Ты") вариант - это уже нововведение языка, и препод это скорее всего даже не поймет.

В С99 и gnu extension есть еще макросы с переменным числом аргументов
C++
1
2
3
4
5
6
7
8
9
#include<cstdio>
 
#define PRINT(...) printf(__VA_ARGS__);
 
int main()
{
   PRINT("Hello\n")
   PRINT("%s%d", "Var = ", 5)
}
http://liveworkspace.org/code/3SgX5D

Добавлено через 4 минуты
Цитата Сообщение от Kastaneda Посмотреть сообщение
В С99 и gnu extension
Хм, на википедии написано, что они еще в С++11 поддерживаются.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
15.01.2013, 10:34     Как запрограммировать функцию со сменным количеством параметров #7
Kastaneda, В стандарте ни слова про __VA_ARGS__. Так что...
Kastaneda
Форумчанин
Эксперт С++
4470 / 2832 / 224
Регистрация: 12.12.2009
Сообщений: 7,202
Записей в блоге: 1
Завершенные тесты: 1
15.01.2013, 10:38     Как запрограммировать функцию со сменным количеством параметров #8
Цитата Сообщение от ForEveR Посмотреть сообщение
Kastaneda, В стандарте ни слова про __VA_ARGS__. Так что...
Ну на гнушном сайте точно написано http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
А про стандарт сам только что на википедии увидел, может там ошибка, или может стоит поискать в стандарте "Variadic Macros", возможно там просто не __VA_ARGS__, а что-нибудь другое.
Пaтрик
15.01.2013, 10:40
  #9

Не по теме:

ForEveR, Kastaneda и началась битва титанов в 2013 на cyberforum

ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
15.01.2013, 10:43     Как запрограммировать функцию со сменным количеством параметров #10
Kastaneda, Я все-таки не прав видимо. Прошу прощения.

C99 features
To preserve a high degree of compatibility, a few minor changes to the language were introduced in collaboration with the C standards committee:

long long.
Extended integral types (i.e. rules for optional longer int types).
UCN changes [N2170==07-0030] ``lift the prohibitions on control and basic source universal character names within character and string literals.''
concatenation of narrow/wide strings.
Not VLAs (Variable Length Arrays; thank heaven for small mercies).

Some extensions of the preprocessing rules were added:

__func__ a macro that expands to the name of the lexically current function
__STDC_HOSTED__
_Pragma: _Pragma( X ) expands to #pragma X
vararg macros (overloading of macros with different number of arguments)


C++
1
        #define report(test, ...) ((test)?puts(#test):printf(_ _VA_ARGS_ _))
empty macro arguments

A lot of standard library facilities were inherited from C99 (essentially all changes to the C99 library from its C89 predecessor):
http://www.stroustrup.com/C++11FAQ.html#C99

Ну и 16.3/5

The identifier _ _ VA_ARGS _ _ shall occur only in the replacement-list of a function-like macro that uses the
ellipsis notation in the parameters.
Taatshi
Администратор
11304 / 4889 / 249
Регистрация: 05.04.2011
Сообщений: 13,482
Записей в блоге: 2
15.01.2013, 10:46     Как запрограммировать функцию со сменным количеством параметров #11
anna93, одна тема - один вопрос. На будущее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2013, 11:06     Как запрограммировать функцию со сменным количеством параметров
Еще ссылки по теме:

Функция с переменным количеством параметров C++
C++ Шаблон с переменным количеством параметров
Функции со сменным количеством параметров C++
Функция с переменным количеством параметров C++
задача на функции со сменным числом параметров. подскажите, пожалуйста решение C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,975
Записей в блоге: 2
Завершенные тесты: 1
15.01.2013, 11:06     Как запрограммировать функцию со сменным количеством параметров #12
Ну а это из 2003 стандарта:
When there is no parameter for a given argument, the argument is passed in such a way that the receiving
function can obtain the value of the argument by invoking va_arg (18.7).
и собственно, 18.7
Как запрограммировать функцию со сменным количеством параметров
Yandex
Объявления
15.01.2013, 11:06     Как запрограммировать функцию со сменным количеством параметров
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru