Невозможно преобразовать указатель на функцию-член, чтобы ввести указатель на функцию - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь сделать что-то вроде этого:

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)'

Есть ли способ решить эту проблему? Заранее спасибо за ваше время

...