просто написать имя функции и все работает? И адрес указателя на функцию и функции одинаков. Я чего-то не знаю или это просто бесполезно (в чем я сомневаюсь)?
string POP()
{
return "POP";
}
void show(string(*foo)() // без указателя void show(string(foo)()
{
cout << foo();
}
void main()
{
show(POP);
}
Живой пример - получение указателя на функцию при загрузке динамической библиотеки. Адрес на момент компиляции не известен, станет известным в рантайме после резолва символа требуемой функции.
а, я до такого еще не дошел, понял, спасибо)
Вариант номер два - есть функции с одинаковым прототипом, но разным поведением, и есть один объект указателя с типом как у этих функций. Можно в динамике переназначать указатель на одну из функции и менять поведение и результат при вызове через указатель. Пожалуйста)
Изучи функцию сортировки qsort, из стандартной библиотеки. На этом примере будет ясно
Обсуждают сегодня