Typumwandlung



  • mich intressiert ma scho seit langem was hier von diesen möglichkeiten am besten is :

    WideString Hurra = "blubbbbbb";
    AnsiString AnsiHurra  = static_cast<AnsiString>(Hurra);
    AnsiString AnsiHurra2 = AnsiString(Hurra);
    AnsiString AnsiHurra3 = (AnsiString)Hurra;
    AnsiString AnsiHurra4 = Hurra.c_bstr();
    

    edit : ich hab das mit absicht ins BCB Forum hier geschrieben weil AnsiString Borland spezifisch ist .

    [ Dieser Beitrag wurde am 21.03.2003 um 08:27 Uhr von 1ntrud0r editiert. ]



  • keiner von denen :p

    AnsiString AnsiHurra3(Hurra);
    


  • sorry nicht gesehen 🙄

    mh jop der große Gott hat in seiner bibel ja vom Teufelswerkzeug casts geschrieben...

    [ Dieser Beitrag wurde am 21.03.2003 um 08:39 Uhr von 1ntrud0r editiert. ]



  • WideString Hurra = "blubbbbbb";
    AnsiString AnsiHurra  = static_cast<AnsiString>(Hurra);  //1
    AnsiString AnsiHurra2 = AnsiString(Hurra) ;//2
    AnsiString AnsiHurra3 = (AnsiString)Hurra; //3
    AnsiString AnsiHurra4 = Hurra.c_bstr();//4
    

    Generell sollte man castings so weit wie es geht vermeiden.
    Deshalb fallen die Version 1 und 3 weg. Konstrkutoren wie in Version 3 sind eigentlich die bessere Wahl, da eine große Typsicherheit gegeben ist. Das Übergeben von temporären Zeigern an anderen Objekten über Memberfunktionen ist nicht verkehrt. Ist allerdings Zeitaufwendig, da :

    -die Memberfunktion aufgerufen werden muss die ein temporärer Zeiger erstellt und zurückgibt.
    -der temporäre Zeiger im anderen Objekt kopiert werden muss.

    [ Dieser Beitrag wurde am 21.03.2003 um 08:46 Uhr von AndreasW editiert. ]



  • wir waren ja auch gleichzeitig *G*

    [ Dieser Beitrag wurde am 21.03.2003 um 08:45 Uhr von AndreasW editiert. ]



  • wär fast nen faq beitrag zum thema typumwandlung imho .)



  • Original erstellt von 1ntrud0r:
    mh jop der große Gott hat in seiner bibel ja vom Teufelswerkzeug casts geschrieben...

    Wobei man immer beachten sollte, dass grosse Götter zum Überzeichnen und zur übertriebenen extremität neigen. Zwar sollten Casts vermieden werden aber in manchen Fällen ist dies schlicht nicht möglich. Ich finde es allerdings falsch, casts grundsätzlich zu verteufeln. (Vor Allem "nur" weil es ein 'Guru/Gott' sagt. Nur zu oft werden die Regeln von den 'Gurus' zu wörtlich genommen.) Leider werden Casts viel zu häufig benutzt um Unwissenheit zu kaschieren und zu überbrücken: "Was? Der erwartet einen andern Parameter? Na wo krieg ich das jetzt wieder her? Ah wurscht. Casten wir mal, wird schon klappen."
    Das ist natürlich falsch. Man sollte sich vor jedem Cast fragen "Was geschieht wenn ich diesen Cast setze? Was sind die Auswirkungen davon? Gibt es einen anderen Weg um den Cast zu umgehen?" Casts sind nicht böse, sie werden nur zu bösem benutzt. Es existiert auch die Theorie, dass man die C++-Style-Casts extra so unförmig gemachthat, damit man lange zum schreiben - und damit viel Zeit zum Überlegen hat, was man eigentlich genau machen will.

    -junix



  • Der große Gott == Bjarne Stroustrup ( in The C++ Programming Lanuage ) != Guru 🙄



  • Ich weiss schon wen du mit "Der grosse Gott" meinst. Ob nun Gott oder Guru meine obigen Aussagen treffen auf beides zu.

    -junix


Anmelden zum Antworten