SmartPointer frage!



  • Hi,

    wie kann man sowas realisieren?

    #include <memory>
    struct X
    {
        int y;
    };
    
    long createX (std::auto_ptr<X> *gaga)
    {
        gaga (new X); // Hier gibbet einen Fehler!
    
        return 0; // VORERST!
    }
    
    std::auto_ptr<X> gogo;
    
    createX (&gogo);
    

    bitte sagt mir wie man einen SmartPointer über einen Parameter erstellen kann!



  • Hallo,
    zwei Lösungen:

    *gaga = new X;
    // oder falls dein Compiler das nicht unterstützt:
    *gaga = std::auto_ptr<X>(new X;)
    

    Oder du verwendest eine Referenz:

    long createX (std::auto_ptr<X>& gaga) 
    { 
        gaga = new X;
        // oder falls dein Compiler das nicht unterstützt:
        // gaga = std::auto_ptr<X>(new X);
        return 0;
    }
    

Anmelden zum Antworten