我有一些第三部分代码:
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
)?