类成员的正确语法函数指针列表是啥?
Posted
技术标签:
【中文标题】类成员的正确语法函数指针列表是啥?【英文标题】:what is the correct syntax function pointer list with class member?类成员的正确语法函数指针列表是什么? 【发布时间】:2021-12-19 10:33:13 【问题描述】:我有一个函数指针列表,非类成员编译没有错误,但类成员编译有错误:
错误:初始化时无法将 'void (CVdmConfig::)()' 转换为 'fp aka void ()()'
CVdmConfig::writeConfig 是一个空函数。
typedef void (*fp)();
fp fpList[] = &valvesCalib,&CVdmConfig::writeConfig ;
我做错了什么? 最好的祝福 维尔纳
【问题讨论】:
【参考方案1】:没有看到你的其余代码,我可以调试的东西不多,但这里有一个有效的例子:
#include <iostream>
using namespace std;
void valvesCalib()
cout << "inside function\n";
class CVdmConfig
public:
static void writeConfig()
cout << "inside method\n";
;
typedef void (*fp)();
fp fpList[] =
&valvesCalib,
&CVdmConfig::writeConfig
;
int main()
for (auto f: fpList)
f();
return 0;
/*
Output:
inside function
inside method
Program finished with exit code 0
*/
【讨论】:
【参考方案2】:问题是成员函数中缺少静态定义。但这会导致类中变量的其他问题。所以我为此使用了一个包装器。
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于类成员的正确语法函数指针列表是啥?的主要内容,如果未能解决你的问题,请参考以下文章