У меня есть следующие классы
class Parent {
virtual void doStuff() = 0;
};
class Child : public Parent {
void doStuff() {
// Some computation here
}
};
И у меня есть функция со следующей подписью.
void computeStuff(std::vector<boost::shared_ptr<Parent> >);
При условии, что я могу реорганизовать свой код (включая сигнатуру функции), Каков наилучший способ передачи функции computeStuff
списка указателей на Child
объектов?
По сути, я хотел бы, чтобы следующий фрагмент кода компилировался и выполнялся
std::vector<boost::shared_ptr<Child> > listOfChilds = getList();
computeStuff(listOfChilds);