无法将指向成员函数的指针转换为指向函数的指针

时间:2019-05-05 00:51:10

标签: c++ function-pointers member-function-pointers non-static

我正在尝试做这样的事情:

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

有没有办法解决这个问题?预先感谢您的宝贵时间

0 个答案:

没有答案