Suchergebnisse

Suchergebnisse 1-7 von insgesamt 7.

  • Benutzer-Avatarbild

    Mach den Destruktor von token mal virtuell, dann klappts. Ich würde dass mit dem token_type aber lassen bzw. einschränken und unterteilen zwischen token<int/long/double>, token<const int/const long/const double> und token<string>. Dann sparst du dir die ganzen Switche. Sieht mir wie'n Rechner aus. Vielleicht kann man Operation anstatt eines Strings direkt n Lamda hinterlegen. Müsste man mal abwägen wie komfortabel dass Ganze wird.

  • Benutzer-Avatarbild

    Sofern da mal iwas wichtiges gemacht werden soll z.B. Speicher freigeben, dann musser virtuell sein, sonst halt nicht. Die map<.., function<>> hatte ich erst garnicht gesehen, dass ist echt nicht schlecht so. Wenn dus jetzt über spez. Templates löst, wirst du alles was ein Token nimmt als Template machen müssen. So wirds in der Stl auch gemacht, ist mehr Programmieraufwand, verbraucht mehr Speicher ist allerdings schneller und flexibler als dynamische Polymorphie durch Vererbung. Falls Ersteres,…

  • Benutzer-Avatarbild

    Jo, dachte da an sowas: (Versteckter Text)

  • Benutzer-Avatarbild

    Richtig, dass ist nur diese eine Methode. Ohne Polymorphie. Müsste so auch ziemlich gut hinhauen, wenn ich dich nicht falsch verstanden habe. Du müsstest nur jeweils den stack<> noch als Parameter hinzufügen, war ich zu faul zu func2 ist die Definition eines Funktionszeigers für double __cdecl function(double); Weil std::sin() überladen ist muss man den durchn static_cast jagen, damit der Compiler weiss welche Überladung gemeint ist. MAKE_FUN macht dir aus ner überladenen Funktion eine function<…

  • Benutzer-Avatarbild

    Also du bekommst als Input vermutlich nen String. Wie du den interpretierst weiß ich nicht, RegEx vielleicht? Is auch inner Std Lib. Ich würde diese Teilstrings dann erstmal in n vector<string> legen geordnet nach Operationsreihenfolge. Danach alle durchloopen und dabei interpretieren was es ist, den String casten und dann evaluate aufrufen. Falls man so zweimal prüfen muss obs ne Zahl, Konstante, Funktion etc ist, könntest du direkt alles in ein vector<pair<string, enum>> packen. Grüße

  • Benutzer-Avatarbild

    Polymorph isses aber nicht getrennt, sondern alles in 1 mit einer Monster-Methode zum interpretieren der Daten. So hast du nur Analyse->Ordnen->Evaluate->Fertig.

  • Benutzer-Avatarbild

    Du wertest sämtliche Token in einer Methode aus zusätzlich zu den ganzen Maps<>. Imho wartbarer wenns aufgeteilt ist. Man muss ja nicht unbedingt ein Template nehmen um es nachher wieder in seine Typen aufzudröseln. Du kanst es natürlich machen wie du willst Zur Basisklasse casten geht halt nur bei polymorphen Klassen, was ja auch Sinn macht.