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

Показать сообщение отдельно
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