Mein Problem ist, dass ich ein Header-Funktion in einem anderen Header der Funktion als Parameter übergeben will, aber ich erhalte eine Fehlermeldung, weiß ich nicht, was zu tun ist.C++ Passing Funktion als Parameter (zwischen Header)
header1:
class headerClass1{
public:
void funct1(){}
};
header2:
typedef void (*functCall)()
class headerClass2{
public:
void funct2(functCall fc()){}
};
Haupt:
int main(){
headerClass1 *h1=new headerClass1(parameters);
headerClass2 *h2=new headerClass2(parameters);
h2->funct2(h1->funct1());
^kehrt Fehler "ungültige Verwendung von Leere expresion"
...
delete h1;
delete h2;
return 0;
}
Bitte gehen Sie ins Detail, warum das nicht funktioniert.
Es gibt zu viele grundlegende Fehler. Es wird vorteilhaft für Sie sein, durch ein Lehrbuch zu gehen, um die Grundlagen der Sprache richtig zu verstehen. –
'h1-> funct1()' ist ein Aufruf von funct1, '& h1-> funct1' ist die Adresse der Funktion (die übergeben werden muss). In headerClass2 sollte der Parameter von funkt2 in 'void funct2 (functCall fc)' geändert werden. Und dann haben Sie immer noch das Problem, dass Ihre Funktionen Memberfunktionen und keine einfachen Funktionen sind. Es wäre besser, wenn Sie beschreiben, was Sie erreichen möchten. –