6 Stimmen

C++: Wie man ein Ereignisse / Messaging-System ohne ungültige Zeiger bauen?

Ich möchte ein dynamisches Nachrichtensystem in meinem C++-Projekt haben, eines, in dem es eine feste Liste von vorhandenen Ereignissen gibt, Ereignisse können überall während der Laufzeit ausgelöst werden, und wo Sie Callback-Funktionen für bestimmte Ereignisse abonnieren können.

Es sollte eine Option für Argumente geben, die in diesen Ereignissen weitergegeben werden. Zum Beispiel könnte ein Ereignis keine Argumente benötigen (EVENT_EXIT) und manche brauchen vielleicht mehrere davon (EVENT_PLAYER_CHAT: Player object pointer, String with message)

Die erste Möglichkeit, dies zu ermöglichen, besteht darin, dem Ereignismanager beim Auslösen eines Ereignisses einen void-Zeiger als Argument zu übergeben und ihn in der Callback-Funktion zu empfangen.

Obwohl: Mir wurde gesagt, dass void-Zeiger unsicher sind und ich sie nicht verwenden sollte.

  • Wie kann ich halten (semi) dynamische Argumenttypen und zählt für meine Ereignisse, während nicht mit void Zeiger?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X