Hi,
I've a doubt about shared_ptr...
Suppose to have something like this:
template<typename T>
class Interface {..pure virtual..}
template<typename T>
class Impl1 : public Interface<T> {....}
template<typename T>
class Impl2 : public Interface<T> {....}
class A
{
public:
Interface<int>* GetObjPtr() { return &obj; }
private:
Impl2<int> 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> > 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.