Function-to-pointer auf virtuelle/vererbte klassen und noch sehr schnell ?



  • Hi alle.

    Folgendes scenario:
    Es gibt eine Basis klasse (nennen wir sie mal B als Basis), die pure-virtual ist. (beinhaltet myfunc() NICHT)
    Es gibt zwei Klassen, und deren instanzen, die von B basieren. (nennen wir sie X und Y ).
    Jede Klasse auf B basierend hat eine methode zum zurückgeben aller funktionen der klasse, also getfuncs();
    Y hat eine funktion myfunc() , die X aufrufen will.

    (die klassen sollen dynamisch sein (DLLs), und der ganze inhalt ist nur compilier-zeit von den klassen nicht bekannt. -> Polymorphismus)

    -> X holt sich den Functions pointer mit Y->getfuncs() und sucht sich myfunc() aus der liste aus.
    -> X speichert den functions pointer wirgendwo ab.
    -> X will myfunc() von Y aufrufen.
    [ Es wird natürlich viel mehr funktionen in X / Y geben ]

    Die aufrufe sollten ziemlich schnell sein, da manche funktionen wirklich oft pro sekunde aufgerufen werden.

    Jede Klasse auf B basierend, hat einen "Linker" (ich weis ihr werdet wollen das ich was anderen wähle, aber ich habe auch schon 'schlimmere' begriffe verwendet 😛 ). Der Linker ist dazu da, den Klassen den austausch von functionen und aufrufen zu ermöglichen. Die Links müssten irgendwo da sein, und möglichst einfaches aufrufen ermöglichen (also so wie normale funktionen 🙄 ?)

    Wie wäre so etwas möglich? Bitte bitte beispiel-code :p



  • Also ich wollte eigentlich nur etwas guten beispielcode, da im internet für genau das, was ich machen will nix ist / kann nix finden...



  • Ich glaube nicht, dass dir jemand die Arbeit abnhemen wird, ohne dass du auch nur die geringste Vorarbeit geleistet hast.

    Für mich klingt das so: "Macht meine Arbeit, bitte!"



  • Bring besser mal ein wenig Code wie du dir das genau vorstellst und wo genau das Problem auftritt, was du nicht hin kriegst.


Anmelden zum Antworten