auto_ptr



  • wie kann ich einem auto_ptr einen normalen zeiger zuweisen?
    std::string onestring;
    ...

    const std::auto_ptrstd::string smartCharPtr(onestring.c_str());
    ...
    funktioniert aber nicht.



  • hi!
    Die Methode reset erlaubt die Zuweisung eines normalen Zeigers (der natürlich auf ein mit new erstelltes Objekt zeigen muss) an einen auto_ptr.

    quelle:
    http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=auto_ptr#Answ
    (HumeSikkins)

    cu


  • Mod

    netrobot schrieb:

    wie kann ich einem auto_ptr einen normalen zeiger zuweisen?
    std::string onestring;
    ...

    const std::auto_ptrstd::string smartCharPtr(onestring.c_str());
    ...
    funktioniert aber nicht.

    logisch, weil es keine automatisch konvertierung von const char* nach std::string* gibt. das hat aber nichts mit auto_ptr zu tun. korrigierbar ist das nur, wenn klar wird, was genau du eigentlich machen möchtest.



  • @netrobot
    An sich würde man das so machen:

    std::auto_ptr<std::string> smartString( new std::string( onestring ));
    

    A B E R !!
    Für was willst du einen std::string denn überhaupt als pointer in einem auto_ptr<> speichern? Meiner Meinung nach gibt es immer einen besseren weg.

    MfG

    // was rausgenommen.



  • Ehm, was hat denn std::string damit zu tun? Ist doch egal ob string, Feuerwehrauto oder Haus. auto_ptr macht dann Sinn, wenn es Sinn macht. Und auto_ptr macht in einigen Situationen Sinn. Z.B. in einer Factory... komfortabler gehts nicht.


  • Mod

    Artchi schrieb:

    Ehm, was hat denn std::string damit zu tun? Ist doch egal ob string, Feuerwehrauto oder Haus. auto_ptr macht dann Sinn, wenn es Sinn macht. Und auto_ptr macht in einigen Situationen Sinn. Z.B. in einer Factory... komfortabler gehts nicht.

    die frage nach dem sinn wurde aber gar nicht gestellt.



  • camper schrieb:

    Artchi schrieb:

    Ehm, was hat denn std::string damit zu tun? Ist doch egal ob string, Feuerwehrauto oder Haus. auto_ptr macht dann Sinn, wenn es Sinn macht. Und auto_ptr macht in einigen Situationen Sinn. Z.B. in einer Factory... komfortabler gehts nicht.

    die frage nach dem sinn wurde aber gar nicht gestellt.

    Nicht?

    Für was willst du einen std::string denn überhaupt als pointer in einem auto_ptr<> speichern?


  • Mod

    1:0 für dich, ... aber jedenfalls wurde die frage nicht an dich gestellt 🙂


Anmelden zum Antworten