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

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

Войти
Регистрация
Восстановить пароль
 
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
#1

Объявление функции как аргумента - C++

02.12.2012, 22:56. Просмотров 317. Ответов 5
Метки нет (Все метки)

Как объявить функции в качестве аргумента в другой функции?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 22:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объявление функции как аргумента (C++):

Передача перегруженной функции как аргумента - C++
Есть 3 метода: static int readInteger() { double temp = readDouble(); int result = temp; if (result != temp) throw new...

Как в качестве аргумента функции передать массив? - C++
Доброго времени суток! Расскажите, пожалуйста, если не затрудняет, как в качестве аргумента функции передать массив? Функция должна...

Как передать функции массив в качестве аргумента? - C++
Всем привет! Подскажите, как передать функции массив в качестве аргумента? И как сделать, чтобы функция возвращала массив?

Использование указателя на структуру как аргумента функции - C++
Я написал функцию, которая принимает указатель на структуру как аргумент функции, но компилятор выдаёт странную ошибку о преобразовании...

Как мне избежать взятия адреса у аргумента функции? - C++
Здравствуйте, написал код, который на одном компиляторе работает как надо, а на другом выдает кривые ответы, порылся в интернете и понял,...

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

5
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
02.12.2012, 23:01 #2
C++11
std::function
0
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
03.12.2012, 07:20  [ТС] #3
Нет не то имею ввиду а объявить ее:
C++
1
void s(int i,/*вот тут объявить как аргумент*/);
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
03.12.2012, 08:59 #4
Цитата Сообщение от Boshop Посмотреть сообщение
Нет не то имею ввиду а объявить ее
std::function<ReturnType(T1 arg1, T2 arg2, ...)> fun:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <functional>
 
int apply(std::function<int(std::initializer_list<int>)> fun, std::initializer_list<int> args)
{
    return fun(args);
}
 
 
int sum(std::initializer_list<int> args)
{
    int result = 0;
    for(const auto &arg: args)
        result += arg;
    return result;
}
 
int main()
{
    std::cout << apply(sum, {1,2,3,4,5}) << std::endl;
}
Можно еще воспользоваться сишными указателями на функции.
1
Пaтрик
417 / 392 / 39
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
03.12.2012, 09:09 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int sum(int a, int b)
{
    return a + b;
}
 
int func(int a, int b, int (*f)(int, int))
{
    return f(a, b);
}
 
int main()
{
    int s = func(1, 2, sum);
}
1
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
03.12.2012, 13:41  [ТС] #6
спасибо
0
03.12.2012, 13:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2012, 13:41
Привет! Вот еще темы с ответами:

Функция рассчета определенного интеграла. (Передача функции как аргумента) - C++
Есть функция пределенная как: float integrall(float (*argFunc)(float x) , float argTmin, float argTmax, float argStep=1) Если ей...

Использование члена структуры как аргумента функции и его изменение - C++
В учебнике Герберта Шилдта «C++. Полное руководство» написано как передавать член структуры в функцию как её аргумент, но почему-то не...

Как правильно реализовать проверку типа передаваемого аргумента в шаблонной функции? - C++
Доброго времени суток, уважаемые форумчане! Пытаюсь реализовать проверку типа аргумента, передаваемого шаблонной функции. Использую...

Что может выступать в качестве аргумента функции, если тип параметра указан как std::ostream? - C++
#include &lt;iostream&gt; void func1(std::ostream so); void main() { func1(аргумент); std::cin.get(); } void...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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