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

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

Восстановить пароль Регистрация
 
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
02.12.2012, 22:56     Объявление функции как аргумента #1
Как объявить функции в качестве аргумента в другой функции?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 22:56     Объявление функции как аргумента
Посмотрите здесь:

C++ Функция рассчета определенного интеграла. (Передача функции как аргумента)
Объявление функции C++
Как передать функции массив в качестве аргумента? C++
Написать программу,которая выводит таблицу значений функции >^(x-2)+(x+1). Диапазон изменения аргумента вводится пользователем так же как и шаг пригла C++
как передать функции указатель на функцию в качестве аргумента? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
02.12.2012, 23:01     Объявление функции как аргумента #2
C++11
std::function
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
03.12.2012, 07:20  [ТС]     Объявление функции как аргумента #3
Нет не то имею ввиду а объявить ее:
C++
1
void s(int i,/*вот тут объявить как аргумент*/);
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
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;
}
Можно еще воспользоваться сишными указателями на функции.
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 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);
}
Boshop
13 / 13 / 0
Регистрация: 25.09.2012
Сообщений: 122
03.12.2012, 13:41  [ТС]     Объявление функции как аргумента #6
спасибо
Yandex
Объявления
03.12.2012, 13:41     Объявление функции как аргумента
Ответ Создать тему
Опции темы

Текущее время: 04:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru