我有一些第3部分代码:如何使用指向方法的指针作为参数(何时需要指向函数的指针)?
class A(){
public:
void assingOnClickFunction(void (*function)();
};
我不能改变任何东西在代码。 我想通过那个A::assingOnClickFunction()
我的方法B类,void B::someFunction()
。我已经试过(全部内的B级!):
a->assingOnClickFunction(this->someFunction);
但我得到的错误:
function call missing argument list; use '&B::someFunction' to create a pointer to member
所以我把它改为:
a->assingOnClickFunction(&B::someFunction);
但现在有关于不同类型的错误:(void(*)()
和(&B::*)()
我不能让B::someFunction()
静态(它使用了很多非静态的B
的成员和方法)!
所以,是否有一个选项传递我B::someFunction()
到A::assingOnClickFunction()
,而不是将其改为静态和A
类不改变任何东西(A
是不是,也不可能知道B
,B
包括A
)?
您想传递'static'的成员函数吗? –
正如我写的,它不是静态的,我不能将它改变为静态。 – PolGraphic
尝试它给出了一个错误:'类型转换':不能从'void(__thiscall B :: *)(void)'转换为'void *' – PolGraphic