Ich habe keinen besseren Titel für die Frage gefunden. Lass es mich jetzt besser erklären:Wie überschreiben verschachtelte C++ - Objekte Methoden?
Das Projekt, an dem ich arbeite, wird sich mit einem Remote-Server verbinden, die Sitzung verschlüsseln und Datenpakete senden/empfangen. Ich möchte es modular genug machen, also dachte ich, es wäre schön, 3 verschiedene Klassen zu verwenden. Diese wären:
1) Eine Socket-Wrapper-Klasse mit einigen virtuellen Methoden wie OnReceivedData() und OnConnected().
2) Eine geerbte Klasse des Socket-Wrappers, die die Verschlüsselung von Daten vor dem Senden und Entschlüsseln von Daten bei ihrer Ankunft implementiert.
3) Das Hauptobjekt selbst, das eine der oben genannten Klassen überschreiben sollte, abhängig davon, ob es verschlüsselt werden muss oder nicht, sodass es auch die OnReceivedData() - und OnConnected() -Ereignisbenachrichtigungen empfangen und basierend darauf agieren kann es.
Also ist das Problem, wie mache ich mein Programm zu wissen, dass es zuerst das Ereignis auf dem Verschlüsselungsobjekt aufrufen und dann das gleiche Ereignis auf dem Hauptobjekt aufrufen muss? Weil ich denke, wenn ich den Socket-Wrapper mit der Verschlüsselung überschreibe und dann die Verschlüsselung mit dem Hauptobjekt überschreibe, wird es wahrscheinlich nur die Hauptobjektmethode aufrufen (es würde OnReceivedData() direkt auf dem Hauptobjekt aufrufen und die Entschlüsselung nicht durchlaufen Objekt zuerst, oder?).
Wird dies Mehrfachvererbung genannt?
BTW, wenn Sie denken, dass es ein schlechtes Projektdesign ist, würde ich alle besseren Ansätze schätzen. Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu lesen.
Mein Vorschlag, versuchen Sie Design-Muster, wie ein 'Builder' oder' Factory' Muster. –