Ni. Semplicemente il vector va fuori scope e viene distrutto, ma senza un intervento diretto del distruttore.Originariamente inviato da Ippo343
Nel distruttore di A, viene chiamato anche il distruttore del vector?
No.ma il distruttore del vector chiama delete sui puntatori che contiene?
A parte un ciclo for su ogni puntatore si può fare questo:Per caso c'è un sistema più intelligente per questa cosa?
( Quanto ci sarebbe stata bene una Lambda function quicodice:template <typename T> struct PointerDestroyer { void operator()(T* p) { delete p; } }; std::for_each( vec.begin(),vec.end(),PointerDestroyer[B]() );)
Edit:
Dimenticavo la soluzione ottimale:
codice:vector<std::tr1::shared_ptr[B] > vec;