Zuweisung eines Funktionspointers
-
Singleton design pattern zb
-
Aber skared hat schon recht...
WAS willst eigentlich erreichen? Und wer hat dir diesen Quelltext vermacht, kann derjenige dir nicht erklären, was er sich bei diesem merkwürdigen Konstrukt gedacht hat?
-
Bei mir lässt sich es sich so übersetzen.
class aK { class iK { int (aK::iK::* foo) (const int, const int); int sum(int a, int b) { return a + b; } public: bool init(int, int); }; }; bool aK::iK::init([[maybe_unused]] int x,[[maybe_unused]] int y) { aK::iK::foo = &aK::iK::sum; return true; }
-
@john-0
Mag ja sein, aber OP darf die Struktur nicht verändern, damit ist und bleibtfoo
ein Zeiger auf eine freie oder statische Klassenfunktion.
-
Dann bleibt nichts anderes übrig, eine freie Funktion als Wrapper zu nutzen, oder man fängt an wild mit
reinterpret_cast
einzuschlagen, und darauf zu hoffen, dass der Compiler kein Problem damit hat.Nachtrag: Da eine Member Function einen impliziten
this
Pointer übergeben bekommt, dürfte der Cast zum Crash führen. Und ich bin mir nicht sicher, ob man eine Static Member Function statt einer freien Funktion nutzen kann. Als C Callback kann man keine Static Member Function nutzen.
-
Ich glaube, ich kündige...
-
@asd1 sagte in Zuweisung eines Funktionspointers:
int sum(int a, int b) { return a + b; }
Schreib da einfach
static
vorn dran.
-
Ok. Danke!
-
@asd1 sagte in Zuweisung eines Funktionspointers:
Ok. Danke!
Häh? Ich dachte, du darfst nichts ändern?
-
Naja, was genau "die Struktur" ist, an der nichts geändert werden darf, wurde nicht erklärt.