Я пытаюсь сделать что-то вроде этого:
struct A
{int(*Law)(int, double);
A(int(*L)(int, double) = LawNULL) : Law(L) {}
};
struct B : public A
{int funct(int, double) {return 1;}
B() : A(funct) {}
};
Проблема возникает в строке
B() : Law(funct) {}
как я получаю ошибку
ошибка: недопустимое использование нестатической функции-члена 'int B :: funct (int, double).
Я также пытался изменить класс B следующим образом
struct B : public A
{int funct(int, double) {return 1;}
B() : A(LawNULL) {Law = funct;}
};
но это выдает ошибку
не может преобразовать 'B :: funct' из типа 'int (B ::) (int, double)' в тип 'int (*) (int, double)'
Есть ли способ решить эту проблему? Заранее спасибо за ваше время