我有一些第三部分代码:
class A(){
public:
void assingOnClickFunction(void (*function)();
};
我无法更改该代码中的任何内容。我想传递给A::assingOnClickFunction()我的 B 类方法,void B::someFunction(). 我已经尝试过(都在B 类里面!):
a->assingOnClickFunction(this->someFunction);
但我得到了错误:
函数调用缺少参数列表;使用 '&B::someFunction' 创建指向成员的指针
所以我把它改成了:
a->assingOnClickFunction(&B::someFunction);
但是现在有关于不同类型的错误:(void(*)()和(&B::*)()
我不能制作B::someFunction()静态(它使用了很多非静态B的成员和方法)!
那么,是否可以选择将 my 传递 B::someFunction() 给 A::assingOnClickFunction(),而不是将其更改为 static 并且不更改A课堂上的任何内容(A不知道也不知道B,B包括A)?