C ++ Переопределенный метод не вызывается
Shape.h
namespace Graphics {
class Shape {
public:
virtual void Render(Point point) {};
};
}
Rect.h
namespace Graphics {
class Rect : public Shape {
public:
Rect(float x, float y);
Rect();
void setSize(float x, float y);
virtual void Render(Point point);
private:
float sizeX;
float sizeY;
};
}
struct ShapePointPair {
Shape shape;
Point location;
};
Используется так:
std::vector theShapes = theSurface.getList();
for(int i = 0; i < theShapes.size(); i++) {
theShapes[i].shape.Render(theShapes[i].location);
}
Этот код вызываетShape::Render
а не яRect::Render
м при условии, что это происходит из-заRect
кShape
но я неЯ понятия не имею, как остановить это, делая это. Я'я пытаюсь позволить каждой фигуре контролировать, как она отображается, переопределяяRender
метод.
Есть идеи как этого добиться?