我的问题是我想在另一个头函数中传递头函数作为参数,但是我得到一个错误,我不知道该怎么做。C++传递函数作为参数(标题之间)
头1:
class headerClass1{
public:
void funct1(){}
};
标题2:
typedef void (*functCall)()
class headerClass2{
public:
void funct2(functCall fc()){}
};
主:
int main(){
headerClass1 *h1=new headerClass1(parameters);
headerClass2 *h2=new headerClass2(parameters);
h2->funct2(h1->funct1());
^返回错误 “无效使用无效expresion的”
...
delete h1;
delete h2;
return 0;
}
请详细说明为什么这不起作用。
有太多的基本错误。这将有利于你通过一本教科书来正确理解该语言的基础知识。 –
'h1-> funct1()'是对funct1的调用,'&h1-> funct1'是函数的地址(您需要传递)。在headerClass2中,你的funct2参数应该改为'void funct2(functCall fc)'。然后你仍然有问题,你的函数是成员函数而不是普通函数。如果你描述你想达到的目标会更好。 –