c++ - Accessing derived objects in boost::ptr_vector -


i using boost::ptr_vector < class > , use store objects of class b : public class a. want able access class b objects in vector; how cast access?

ideally, a should provide virtual interface allows access parts of b need. if need access actual b objects, need use dynamic_cast on reference yielded iterator container (you use static_cast if knew certainty iterator pointed @ b object):

// create container , insert new element it: boost::ptr_vector<a> s; s.push_back(new b());  // reference element inserted: b& b_ref = dynamic_cast<b&>(*s.begin()); 

if wanted iterate on b elements in container (and skip on non-b elements), using combination of boost's transform_iterator (to convert each a& b&) , filter_iterator (to skip on non-b elements in container).


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -