Typecast



  • Hallo,

    wie kann ich ein Object des Typs string in ein String^ umwandeln?
    Ich möchte dies gerne per Operator, Konstruktor oder CTor lösen, bekomme
    es aber nicht hin.

    Gruß
    Boris



  • System::String ^ t = gcnew System::String(std::string("Test").c_str());
    


  • Ok, das ist richtig. Diesen Schritt hätte ich gerne automatisiert,
    d.h. ich habe habe in meiner Klasse einen Konstruktor, Methode, Operator, etc., und dieser konvertiert automatisch den "string" in ein "STring^".



  • Bau dir eine neue Klasse, nennen wir sie "stringConverter".
    Diese kriegt einen Konstruktor für einen System::String, einen Konstruktor mit std::string als Parameter (und evtl. auch noch andere Stringtypen)
    Diese Klasse kümmert sich dann um die Konvertierung zwischen den einzelnen Strings.
    Um an das Konvertierte ranzukommen brauchts hier halt noch eine Methode der Art "getSystemsString()" etc.

    Deine eigentliche Klasse kriegt nun statt eines System::String oder std::string einen stringConverter.
    Somit läßt sich deiner Klasse ein beliebiger String mitgeben und der Konverter erledigt den Rest.


Anmelden zum Antworten