autoptr in stl container?



  • Hallo Leute,

    gibts ne möglichkeit autoptr von objekten in nem container zu speichern wohl nich oder...

    oder wie könnte ich erzwingen, das Klasse A nur über die funktion von klasse B erzeugt werden darf?

    bspw.

    B obj;
    
    obj.add(new A()); //soll gehen
    
    A* p = new A(); //soll nich gehen
    


  • class A;
    
    class B{
    private:
    	B (){}
    
    	friend A;
    };
    
    class A{
    public:
    	B* getB (){
    		return new B ();
    	}
    };
    
    int main (){
    	A a;
        B n; //Geht nicht
    	B* b = a.getB (); //Geht
    }
    


  • Konstruktoren (Default und Copy) von A private machen, B als friend und B eine Methode verpassen, in der ein A erstellt wird.

    BorisDieKlinge schrieb:

    gibts ne möglichkeit autoptr von objekten in nem container zu speichern wohl nich oder...

    std::vector< boost::shared_ptr<Z> > cont;
    

    ?


Anmelden zum Antworten