Я еще не очень хорошо знаком с ними, но, возможно, кто-то может осветить этот пример.Использование указателей функций?
Представьте, что у меня есть класс CFoo, и у него будет функция для добавления обработчика и функции, которая является указателем на функцию.
Так что-то вроде этого:
class CFoo {
int *pointedFunc(int a, int b) = 0;
void setFunc(int *func(int a, int b))
{
pointedFunc = func;
}
};
Учитывая вышеизложенное контекст, я хочу знать правильный способ сделать это. Я не думаю, что я сделал это правильно. Кроме того, как я мог бы позвонить в pointFunc?
Благодаря
Не «a * function *, который является указателем на функцию», а «переменная-член * * (известная в OO как * поле *), которая является указателем на функцию». –
Пожалуйста, избегайте указателей функций в коде C++. Определите интерфейс и создайте типы, реализующие этот интерфейс. Затем вы можете аккуратно хранить объекты, не прибегая к C hocks-pockus указателей на функции. –
@Martin: Иногда интерфейс - это правильный подход, иногда шаблонные (и утиные) функторы, а иногда и указатели на функцию лучше. Для динамической компоновки необходимы указатели на функции. –