请考虑这样的代码:
class MyClass{
public:
void MyFunc(int x){
std::cout << x << std::endl;
}
};
int main(){
MyClass* class_ptr = new MyClass();
void (Myclass::*member_func_ptr)(int) = &MyClass::MyFunc;
// This should output '5'.
(class_ptr->*member_func_ptr)(5);
/* ??? */
// I want the following to output '5' exactly the same way as previous call.
func_ptr(5);
}
我应该如何完成此代码才能func_ptr(...)
调用 MyFunc *class_ptr
?
如果可能的话,我很想以某种方式将 aMyClass*
和 a加入void (Myclass::*)(int)
到 avoid (*)(int)
中。
如果没有,我希望巧妙地使用std::mem_fn
and std::function
(或其他功能实用程序)可能会成功。
理想情况下,我想要一个 C++11 解决方案(因为std::mem_fun
现在不推荐使用 eg)。