Commando Befehl



  • Hallo,
    ich beschäftige mich jetzt seit gut 2 Wochen mit C++ nachdem ich diverse andere Programmiersprachen genutzt habe. Mein Ziel ist es ein Programm zu schreiben dass von einem anderen Programm einen Befehl bekommt der in form eines Objektes übergeben wird.
    Der Plan sieht vor dass ich eine Abstrakte Klasse erstelle "Befehl" mit der Abstrakten Methode "act()". Wenn ich davon nun eine Unterklasse erstelle "mache" und überschreibe die Methode act() mit dem überschreibe ,was das Programm tun soll,und diese an das Programm schicke soll das Programm diese als Befehl lesen und act() ausführen ohne dass es eine Klasse von "mache" vorliegen hat.

    Oder gibt es eine andere Möglichkeit dies umzusetzen?

    Der Sin des ganzen ist es dass man im Normalfall einem Programm sagen muss wie es auf einen Befehl reagieren soll. Mit meiner Methode soll man in der Theorie Befehle geben ohne vorher dem Empfänger gesagt zu haben was es machen soll.

    Mit freundlichen Grüßen
    LArex


  • Mod

    Du kannst zwar Daten zwischen Programmen austauschen (und damit dann Callbacks triggern), aber was du beschreibst klingt so, als wolltest du den Code von ganzen Funktionen austauschen. Das dürfte gegen unmöglich gehen, da C++ normalerweise in nativen Binärcode des Computers übersetzt wird, den du dann übertragen müsstest. (ja, das kann man sicherlich irgendwie zusammenhacken, aber es wäre sehr viel Aufwand und ungeheuer unsicher, sowohl von der Computersicherheit her als auch vom Funktionieren des Programms)

    Man könnte eine Scriptsprache implementieren, damit geht das. Ist sehr viel Aufwand. Gibt's natürlich auch als fertige Bibliotheken. Beides aber sicherlich weit über dem Horizont von jemandem der zwei Wochen C++ gemacht hat.

    Vielleicht wäre auch ein Pluginsystem etwas für dich. Ist ein bisschen was anderes als du beschreibst. Und ebenfalls nicht ganz einfach.



  • Ich hatte mir das vorgestellt wie in Java . (ich mag Java zwar nicht aber es muss hinhalten) Da kann man Objekte hin und her schicken. Naja ich denke ich werde dass entweder mit nem Codedom lösen oder mit ner dll .Wobei ich zur dll tendiere da die stabiler ist als der Codedom.



  • Wofür genau brauchst du das?



  • LArex schrieb:

    Ich hatte mir das vorgestellt wie in Java . (ich mag Java zwar nicht aber es muss hinhalten) Da kann man Objekte hin und her schicken.

    Ich komme von Java, aber diese Technik fehlt mir wohl noch....?! Bitte um ein Codebeispiel, wie man in Java 'Objekte hin und her schicken' kann...



  • http://pastebin.com/1JHLxGPA
    http://pastebin.com/sy1qqvDc
    Mit dem hin und herschieben kann man das nicht direkt auf mein Beispiel beziehen hier serialisiert man die Objekte und schiebt sie über einen Socket zu einem anderen Client,der ,und da liegt der unterschied zu dem was ich mit vorgestellt habe, die entsprechende Klasse , hier Date(), vorliegen hat.

    Wozu ich das brauche ?,wie oben steht ich beschäftige mich seit 2 Wochen mit c++ und suche Dinge die ich Implementieren kann und da ich mich daran versuchen wollte frage ich nach wie ich das umsetzen kann. Wie ich dar aufgekommen bin?, ic programmiere zz in der Schule eine Android-Doppelkopf-App die über ein Netzwerk laufen soll da es nun einfacher ist ein Object ,beispielsweise "hand" mit einer lin-list , die die Karten speichert , über das Netzwerk zu übertragen anstatt das alles mit String befehlen bin ich darauf gekommen das in c++ zu versuchen.

    Mit freundlichen Grüßen
    LArex


  • Mod

    Irgendwie bin ich von deiner Beschreibung sehr verwirrt. Was möchtest du denn nun verschicken? Objekte, also Instanzen einer gemeinsamen Klasse? Das ist Pipifax. Eine neue Klasse? So gut wie unmöglich.



  • SeppJ schrieb:

    Objekte, also Instanzen einer gemeinsamen Klasse? Das ist Pipifax.

    Najaaaaaaa. Im Prinzip ist das vom simplen Rumreichen von Pointern bis hin zu RPC, COM und CORBA erstmal potentiell alles drin... 🤡



  • SeppJ ,ist mir als ich dann schon im Bett lag auch aufgefallen. Ich will eine Instanz einer Klasse verschicken die von einer Abstrakten Klasse geerbt hat serialisieren und an den Client verschicken dieser soll nur die Abstrakte Klasse kennen.
    Ich hatte mir gedacht da er ja die abstrakte Methode dieser Klasse kennt sollte es doch möglich sein dass er dann diese abstrakte Methode von der Oben beschriebenen Instanz ausführt.

    Aber dieses COM beschreibt schon ziemlich gut was ich wollte.
    Mal schauen



  • @LArex
    Wenn du neues Verhalten einschleusen willst, das außerhalb von dem liegt was du interpretieren kannst (z.B. weil im Programm ein Interpreter für eine Scriptsprache liegt), musst du de facto Code verschicken. Und da kann ich mich SeppJ nur anschließen: Vergiss es.



  • Ok schade ,aber danke an alle für die schnelle hilfe.



  • LArex schrieb:

    Ok schade ,aber danke an alle für die schnelle hilfe.

    Überleg dir aber nochmal genau, was du in Java machst. Das was du gepostet hast deckt sich überhaupt nicht mit deiner Beschreibung. Das wäre auch in C++ problemlos möglich.


Anmelden zum Antworten