我的問題是我想在另一個頭函數中傳遞頭函數作爲參數,但是我得到一個錯誤,我不知道該怎麼做。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)'。然後你仍然有問題,你的函數是成員函數而不是普通函數。如果你描述你想達到的目標會更好。 –