[C++-sig] Containers for derived classes
abeyer at uni-osnabrueck.de
abeyer at uni-osnabrueck.de
Wed Aug 6 15:04:24 CEST 2003
I would like to do the following:
In C++:
Class "C" is a container holding objects of type "A".
In Python:
Class "B" is derived from class "A" and instances of "B" get stored in
containers of type "C".
When I store objects of Type B in C, they get 'downcasted' to A. Objects
returned from the container are hence no longer of type B, but of type A.
Of course I could store the original boost::python::object somewhere.
However, the FAQ says there are more elegant ways by using
boost::shared_ptr:
"When a shared_ptr<X> is converted back to Python, the library checks to
see if it's one of those "Python object managers" and if so just returns
the original Python object."
I have played with it, but I had no luck so far.
Has anyone an example using shared_ptr that fits my purpose?
Thanks!
Andreas
More information about the Cplusplus-sig
mailing list