Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
young_snake
6 / 6 / 2
Регистрация: 26.12.2011
Сообщений: 263
#1

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

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

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

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

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

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

Указатель на функцию в вызове другой функции
Всем доброе утро. У меня есть вот такая функция. double f(double x) { return...

Как в аргумент функции передать указатель на метод класса?
Как в аргумент функции передать указатель на метод класса? Метод в классе у...

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

1
pav1uxa
1855 / 1709 / 802
Регистрация: 23.01.2014
Сообщений: 6,082
Завершенные тесты: 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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2015, 12:38
Привет! Вот еще темы с решениями:

Функция как аргумент другой функции
Добрый вечер, уважаемые. Собственно, пытаюсь функцию запихнуть в аргументы...

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

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

Вычислить значение функции аргумент которой вычисляется из другой кусочно заданной функции
Решите программу то я не знаю как:hysteric: Вычислить значение y в зависимости...


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

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

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