C ++ Итерация по вектору умных указателей
у меня есть класс, который имеет эту функцию:
typedef boost::shared_ptr<PrimShapeBase> sp_PrimShapeBase;
class Control{
public:
//other functions
RenderVectors(SDL_Surface*destination, sp_PrimShapeBase);
private:
//other vars
vector<sp_PrimShapeBase> LineVector;
};
//the problem of the program
void Control::RenderVectors(SDL_Surface*destination, sp_PrimShapeBase){
vector<sp_PrimShapeBase>::iterator i;
//iterate through the vector
for(i = LineVector.begin(); i != LineVector.end(); i ++ ){
//access a certain function of the class PrimShapeBase through the smart
//pointers
(i)->RenderShape(destination);
}
}
Компилятор говорит мне, что класс boost :: shared_ptr не имеет члена с именем "RenderShape" который я нахожу странным, так как Класс PrimShapeBase, безусловно, имеет эту функцию, но находится в другом заголовочном файле. Какова причина этого?