Ist es möglich, benutzerdefinierte Ereignisse in C ++ zu erstellen? Angenommen, ich besitze die Variable X und die Variable Y. Wenn sich X ändert, möchte ich eine Funktion ausführen, die Y gleich 3X setzt. Gibt es eine Möglichkeit, einen solchen Trigger / Event zu erstellen? (Trigger sind in einigen Datenbanken üblich)
Dies ist im Grunde eine Instanz des Observer-Musters (wie andere erwähnt und verlinkt haben). Sie können jedoch Vorlagenmagie verwenden, um sie etwas syntaktischer palettierbar zu machen. Betrachten Sie etwas wie ...
%Vor%Dann kannst du schreiben ...
%Vor%Welche Methode Sie verwenden, um Ihre Beobachter-Callback-Funktionen zu schreiben, liegt ganz bei Ihnen; Ich empfehle Ссылка Funktions- oder Funktionsmodule (Sie können auch einfache Funktoren verwenden). Ich warne Sie auch davor, bei dieser Art der Überlastung des Bedieners vorsichtig zu sein. Während es bestimmte Codierungsstile klarer machen kann, verwenden Sie rücksichtslos etwas wie
scheintLikeAnIntToMe = 10;
eine sehr teure Operation, die gut explodieren könnte, und Albträume für die kommenden Jahre zu debuggen.
Boost-Signale ist eine weitere häufig verwendete Bibliothek, zu der Sie vielleicht stoßen könnten Beobachtermuster (aka Publish-Subscribe). Käufer aufgepasst, ich habe gehört, seine Leistung ist schrecklich.
Denken Sie, Sie sollten etwas über Design Patterns lesen, insbesondere die Observer Pattern .
Qt von Trolltech haben eine nette Lösung implementiert, die sie Signale und Slots .
Tags und Links c++ design-patterns