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 метод.

Есть идеи как этого добиться?

Ответы на вопрос(8)

Ваш ответ на вопрос