Boost logo

Boost Users :

Subject: [Boost-users] Reference count in shared_ptr
From: Daniele Barzotti (daniele.barzotti_at_[hidden])
Date: 2009-10-01 10:36:44


Hi,
 I've a doubt about shared_ptr...
 Suppose to have something like this:
 template
 class Interface {..pure virtual..}
 template
 class Impl1 : public Interface {....}
 template
 class Impl2 : public Interface {....}
 class A
 {
  public:
    Interface* GetObjPtr() { return &obj; }
  private:
    Impl2 obj;
 };
 class B
 {
   ~B()
   {
     delete a_ptr;
   }
   B()
   {
     a_ptr = new A;
     Int_ptr.reset( a_ptr->GetObjPtr );
   }
   private:
     A* a_ptr;
     shared_ptr< Interface > Int_ptr;
 };
 Where B creates and use A on its internal.
 In this case, is 'delete' called twice for Impl2?
 (When A is destroyed and when B, and its shared_ptr, is destroyed).
 Thanks,
 Daniele.
  



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net