auto_ptr Zuweisung



  • Hallo zusammen,

    ich fange gerade an mich mit Smartpointern zu beschäftigen und stehe vor einem Problem.

    auto_ptr<Connection> con;
    try
    {
    ....
    	con = feeddata->driver->connect(server, user, password);
    }
    ....
    

    Irgendwie weiß ich gerade nicht, wie ich con nachträglich zuweisen kann. Muss ich das mit reset() machen oder geht das auch "charmanter"?

    Gruß



  • Wenn von connect() ein kompatibler Smartpointer zurück kommt, dann kannst du einfach "=" machen.
    Wenn ein roher Zeiger zurückkommt, dann reset().

    Und tu dir selbst einen Gefallen und vergiss dass es auto_ptr gibt.
    Wenn du C++11 verwenden kannst nimm std::unique_ptr.
    Sonst nimm boost::scoped_ptr/boost::unique_ptr.



  • Du hast Recht. connect liefert einen rohen Zeiger.
    Dann mache ich es eben mit reset bzw mit unique_ptr.
    Danke für den Tipp und schönen Abend noch!


Anmelden zum Antworten