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

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

Войти
Регистрация
Восстановить пароль
 
young_snake
6 / 6 / 2
Регистрация: 26.12.2011
Сообщений: 263
#1

Указатель на функцию с аргументами, как аргумент другой функции - C++

31.10.2015, 12:28. Просмотров 191. Ответов 1
Метки нет (Все метки)

У меня есть некая функция, которая принимает как аргумент другую функцию
C++
1
2
3
typedef void(*func_type)();
 
start(func_type ExecFunction);
И все работает нормально, пока мне не понадобились аргументы в функции:
я сделал так
C++
1
typedef void(*func_type)(int, int);
и получил ошибку от компилятора

C++
1
невозможно преобразовать аргумент 1 из "void" в "func_type"
функцию вызываю так
C++
1
2
func_type fun = execF;
start(fun(a,b));
В чем может быть дело?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2015, 12:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель на функцию с аргументами, как аргумент другой функции (C++):

Можно ли передать указатель на функцию как параметр другой функции? - C++
В общем, вопрос. Можно ли, допустим ... int fun1(int x) { ... ... ... return x*1000; }

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

Указатель на функцию с аргументами по умолчанию - C++
Можно ли вообще определить и записать подобное чудо?

Указатель на функцию в вызове другой функции - C++
Всем доброе утро. У меня есть вот такая функция. double f(double x) { return x*x; } И мне нужно найти медиану в квадрате. Что я...

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

Функция как аргумент другой функции - C++
Добрый вечер, уважаемые. Собственно, пытаюсь функцию запихнуть в аргументы другой функции. На подобии маткадовского root(f(x),x,a,b)....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
pav1uxa
1788 / 1628 / 622
Регистрация: 23.01.2014
Сообщений: 5,909
Завершенные тесты: 1
31.10.2015, 12:38 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от young_snake Посмотреть сообщение
В чем может быть дело?
В том что функция start() в качестве аргумента ожидает указатель на тип func_type. А Вы передаете результат функции fun(a, b), который равен void. Можно сделать так, например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
typedef void(*func_type)(int, int);
 
void execF(int a, int b)
{
    std::cout << a+b;
}
 
void start(func_type ExecFunction, int a, int b)
{
    ExecFunction(a, b);
}
 
 
int main ()
{
  int a = 1, b = 2;
  start(execF, a, b);
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2015, 12:38
Привет! Вот еще темы с ответами:

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

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив) - C++
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая как параметр получает указатель на...

Вычислить значение функции аргумент которой вычисляется из другой кусочно заданной функции - C++
Решите программу то я не знаю как:hysteric: Вычислить значение y в зависимости от выбранной функции \varphi (x), аргумент которой...

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


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

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

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