C ++: Как передать ссылку на функцию в другую функцию? - PullRequest
9 голосов
/ 22 августа 2011

Я читал об указателях функций и об их использовании в качестве параметров для других функций.Мой вопрос: как бы вы передали функцию по ссылке, не используя указатели?Я пытался найти ответ в Интернете, но я не нашел хорошего ответа.Я знаю, что вы можете передавать переменные по ссылке так: void funct(int& anInt);.Как бы вы сделали что-то похожее на это, но вместо ссылки на переменную параметром была ссылка на функцию?Кроме того, как бы вы использовали ссылку на функцию в теле функции?

1 Ответ

26 голосов
/ 22 августа 2011
#include <iostream>
using namespace std;

void doCall( void (&f)(int) )
{
    f( 42 );
}

void foo( int x )
{
    cout << "The answer might be " << x << "." << endl;
}

int main()
{
    doCall( foo );
}

Приветствия & hth.,

...