C ++ classe abstrata sem funções virtuais puras?

Eu tenho uma classe base

class ShapeF
{
public:
    ShapeF();
    virtual ~ShapeF();

    inline void SetPosition(const Vector2& inPosition) { mPosition.Set(inPosition); }

protected:
    Vector2 mPosition;
}

Obviamente com algum código omitido, mas você entendeu. Eu uso isso como um modelo, e com algumas divertidas (omitidas) enums, uma maneira de determinar que tipo de forma eu estou usando

class RotatedRectangleF : public ShapeF
{
public:
    RotatedRectangleF();
    virtual ~RotatedRectangleF();
protected:
    float mWidth;
    float mHeight;
    float mRotation;
}

O ShapeF faz o seu trabalho com o posicionamento e um enum que define o que é o tipo. Tem assessores e mutadores, mas nenhum método.

Posso fazer ShapeF uma classe abstrata, para garantir que ninguém tente e instanciar um objeto do tipo ShapeF?

Normalmente, isso é possível ter uma função virtual pura dentro do ShapeF

//ShapeF.h
virtual void Collides(const ShapeF& inShape) = 0;

No entanto, atualmente estou lidando com colisões em uma classe separada. Eu posso mudar tudo, mas eu estou querendo saber se existe uma maneira de fazer um resumo de classe ... sem as funções virtuais puras.

questionAnswers(1)

yourAnswerToTheQuestion