在下面的代码中(请参阅注释):
#include "stdafx.h"
#include <iostream>
using std::cout;
struct Base
{
void fnc()
{
cout << "Base::fnc()";
}
};
struct Impl
{
void* data_;
Impl(void (Base::*fp)())
{
fp();//HERE I'M INVOKING IT - I'M DOING SOMETHING WRONG!
}
};
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
错误
“错误 1 error C2064:项未计算为采用 0 个参数的函数”
为什么它不起作用以及如何解决它?
最佳答案
它不起作用,因为 fp
不是函数指针而是成员指针。
如何修复它很简单,按应有的方式使用它:someinstance.*fp();
关于c++ - 指向成员函数的指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4017011/