Innerhalb einer nicht statischen Klasse, kann ich Funktionselemente direkt wie unten übergeben? Es meldet einige Fehler. Ich habe auch versucht, es zu ändern mystepper.do_step(this->rhs)
Es funktioniert immer noch nicht. Aber wenn ich in die Hauptfunktion und rhs als Funktion setzen, funktioniert es gut. Wie kann ich dieses Problem beheben? Danke vielmals!Funktionselement als Parameter innerhalb einer Klasse übergeben C++
void Animal::rhs(const double x , double &dxdt , const double t) {
dxdt = 2*t;
};
void Animal::response() {
mystepper.do_step(rhs);
}
machte ich einige minimalistische Code meiner früheren question.Your Hilfe ist sehr willkommen zu illustrieren !!
#include <iostream>
using namespace std;
class ABC{
private:
int x =3;
int add2num(int a, int b){
return a+b+x;
}
int worker(int &fun(int a, int b), int a, int b){
return fun(a,b);
}
public:
int doSomething(int a, int b){
return worker(add2num, a, b);
}
};
int main() {
ABC test;
cout << test.doSomething(3,5) << endl;
return 0;
}
Machen Sie es "statisch". – StoryTeller
mache es 'statische Funktion' oder benutze' std :: bind' \ 'lambda function' um zu wissen, auf welchem Objekt es aufgerufen werden soll. – paweldac
Es funktioniert durch rhs als statische Funktion zu ändern! Aber was, wenn ich viele Parameter innerhalb von rhs habe, die sich in verschiedenen Instanzen unterscheiden, die von Animal initiiert wurden? Gibt es noch eine andere Möglichkeit, die Codes funktionieren zu lassen, ohne rhs als statische Funktion zu verändern? – drbombe