Cast nachbilden?



  • Ich würde mir dafür boost::lexical_cast anschauen. Macht eventuell sogar das, was du nachbilden möchtest.



  • Ich denk auch, ist da eine Klasse nicht unnötiger Overhead?



  • Keine Ahnung, deswegen frage ich ja 🙂

    Aber Funktionen sind schon wieder so Anti-OOP-Mäßig 😕

    MfG SideWinder



  • Keine Ahnung, deswegen frage ich ja 🙂

    Aber Funktionen sind schon wieder so Anti-OOP-Mäßig 😕

    MfG SideWinder



  • Aber Funktionen sind schon wieder so Anti-OOP-Mäßig 😕

    😕 😕 😕 😕



  • seitwann sind funktionen in nem namespace nichmehr oop?
    die klasse da oben als funktion wäre prima oop



  • @otze: Das Problem hätte ich genauso mit meiner Alibi-Klasse, nicht nur mit der Funktion. Was soll "cast" denn nachbilden? Welches Objekt stellt es dar? Klassen sollten ja wenn möglich immer "Hauptwörter" nachbilden.

    Ein Auto ist zB eine tolle Klasse, hingegen ist "starten" keine tolle Klasse, und "schön sein" auch nicht. Verben sind Methoden, Adjektive sind Eigenschaften (Membervariablen).

    cast ist in diesem Zusammenhang ein Verb und müsste eigentlich eine Methode sein - zB der Klasse string.

    Aber auf die habe ich keinen Zugriff mehr, also dürfte sich ein string erst gar nicht in einen int casten lassen weil er es eben nicht kann.

    Wie umgehe ich das nun OOP-mäßig? 🙄

    MfG SideWinder



  • Wie umgehe ich das nun OOP-mäßig?

    Die Frage ist doch viel mehr warum du das tun willst. C++ ist keine reine OO-Sprache. Sie sollte auch nie eine solche sein. Vielmehr ist C++ von Anfang an als Multi-Paradigm-Sprache gedacht gewesen und das sollte man auch berücksichtigen, zumindest wenn man C++ optimal nutzen will.
    Wenn du reine OO machen willst, dann solltest du imo eine andere Sprache verwenden. Es gibt da draußen schließlich Sprachen die OO deutlich besser unterstützen als C++.

    Wie umgehe ich das nun OOP-mäßig?

    Ein OO-mäßiger Weg wäre imo, dass jede Klasse die möchte ein spezifisches Cast-Protokoll anbietet. Eine Klasse Cast wäre imo nicht sinnvoll, da diese mit der *Implementation* von Objekten rummachen müsste und sowas sollte eigentlich nur das Objekt selbst machen.



  • Okay dann in C++ eine Funktion dafür bauen 🙂

    MfG SideWinder



  • Eine Funktion sollte nur Methode sein wenn sie in untrenbaren Zusammenhang mit der Klasse steht, ansonsten ist es nur eine Funktion.

    static_cast hat ja auch den Syntax einer Funktion.
    Auch in den Stantard Librarien finden zahllose Beispiele:
    std::sort
    std::swap
    std::find


Anmelden zum Antworten