Возник следующий вопрос: в С есть структура с указателями на функции (могут иметь нулевое значение)
struct {
void (fn1*)(int);
void (fn2*)(int);
}
Некая процедура получает указатель на структуру, проверяет не равен ли нулю указатель на функцию и вызывает ее.
Все просто и удобно. Есть желание преобразовать структуру в класс: создаем базовый класс с пустыми виртуальные функции и класс наследник в котором переопределяем необходимые функции
class base{
virtual void fn1(int) {}
virtual void fn2(int) {}
};
class deriv{
void fn1(int) { ... }
};
Непонятен один момент: как определить что функция fn2 не была переопределена, т.е. вызывать ее не нужно и не нужны подготовительные операции.
Рассматривал вариант с указателем на член класса, но, как выяснилось, сравнивать такие указали нет возможности.
Может есть красивый вариант решения задачи или я все усложняю?