Boost logo

Boost Users :

From: Josh S (aek_at_[hidden])
Date: 2006-05-20 02:27:47

I have a few newb questions:

I have the following classes

class Base {
   virtual ~Base();
   virtual doStuff();

class Foo: public Base {

class FooContainer {
   createFoos(int numOfFoos);
   Foo* getFoo(int indexToFoo);

class BaseContainer {
        void addObj(boost::shared_ptr<Base> obj);

How do I cast the pointer returned from FooContainer::getFoo(), as
something I can pass to BaseContainer::addObj ?
Is this correct to do this? Assuming I cant change the implementation of
FooContainer or the BaseContainer interface. The BaseContainer interface
should not have a special case for adding Foo's.

Good practise tells me I shouldn't create a temporary either.

I do not want the shared_ptr in BaseContainer to call delete on Foo (I
will manually call FooContainer::Destroy()

Now, what happens if I instead want FooContainer to only be responsible 
for creating the Foo objects, and not be responsible for deleting them.
Instead I want the shared_ptr to call delete when the objects reference 
count reaches 0. How would that done?
Thanks in advance,
Josh S

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at