我正在尝试做这样的事情:
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)'
有没有办法解决这个问题?预先感谢您的宝贵时间