Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как передать функцию в качестве аргумента другой функции?

Ответить
Настройки темы
C/C++ - Как передать функцию в качестве аргумента другой функции?

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25


Конфигурация

Профиль | Отправить PM | Цитировать


Как передать функцию в качестве аргумента другой функции? Домустим, у нас есть функция func1(int numb), и есть функция func2, и в качестве аргумента func2 надо передать func1. Внутри func2 мы знаем список аргументов func1 и вызываем внутри func2, для примера, func1(10). Можно ли так сделать?

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 20:24, 05-04-2010

 

Аватара для AlexTNT

Пользователь


Сообщения: 99
Благодарности: 19

Профиль | Отправить PM | Цитировать


Аргумент - некоторое значение. Функция возвращает некторое значение, следовательно:
Код: Выделить весь код
//код
func2(func1(10));
//код
-если я Вас правильно понял.

-------
В споре рождается истина.


Отправлено: 20:39, 05-04-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


через указатель на функцию
Код: Выделить весь код
typedef int (*myfun_type)(int n)

int func1(myfun_type fun, int n)
{
   return fun ? (*fun)(n) : 0;
}
виртуальную функцию
Код: Выделить весь код
struct Listener {
  virtual int fired(int n) = 0;
};

int func1(Listener* listener, int n)
{
  return listener ? listener->fired(n) : 0;
}
вызов через шаблон
Код: Выделить весь код
template<typename Fun> int func2(Fun fun, int arg)
{
   return fun(arg);
}
// можно передавать класс с переопределённым operator()
// а можно указатель на функцию. В случае оператора шаблон может быть раскрыт inline
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:25, 05-04-2010 | #3


Аватара для EvgeniyQQQ

Пользователь


Сообщения: 133
Благодарности: 21

Профиль | Сайт | Отправить PM | Цитировать


Можно ещё, для понимания, почитать про обратный вызов функции.
Например тут.

-------
"Не соглашайся ни на что, кроме совершенства!" - Анонимный автор.
"Совершенство достигается только к моменту полного краха." - К.Н.Паркинсон.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:46, 06-04-2010 | #4


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


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

Отправлено: 21:45, 15-09-2012 | #5


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


anastasiya.kurinko@fb, ссылка некликабельна т.е. неработоспособна

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 09:45, 17-09-2012 | #6


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Правильная ссылка - http://hashcode.ru/questions/128511

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 12:51, 17-09-2012 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как передать функцию в качестве аргумента другой функции?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
GatherBirdFileTunnel16-передать файлы на другой комп через Интернет Patron Хочу все знать 4 15-01-2010 07:37
[решено] Как в Run передать переменные в качестве параметров ASH AutoIt 4 17-12-2009 10:13
Прочее - Как передать сообщение на другой комп по локальной сети dubik Сетевые технологии 8 30-04-2009 20:16
Как передать права администратора другой учётной записи. Ser6720 Microsoft Windows Vista 1 23-05-2007 23:34
* Теория* | С++ - функция, возвращающая тип ее аргумента Kincajou Программирование и базы данных 2 30-07-2006 13:26




 
Переход