Klasa abstrakcyjna C ++ bez czystych funkcji wirtualnych?

Mam klasę bazową

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

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

protected:
    Vector2 mPosition;
}

Oczywiście z jakimś ommitied kodem, ale rozumiesz. Używam tego jako szablonu, z pewnymi zabawnymi (ommited) enums, sposobem na określenie, jakiego rodzaju kształtu używam

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

ShapeF wykonuje swoje zadanie z pozycjonowaniem i wyliczeniem, które definiuje typ. Ma akcesoria i mutatory, ale nie ma metod.

Czy mogę uczynić ShapeF klasą abstrakcyjną, aby nikt nie próbował i nie tworzył obiektu typu ShapeF?

Zwykle jest to możliwe dzięki czystej funkcji wirtualnej w ShapeF

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

Jednak obecnie mam do czynienia z kolizjami w osobnej klasie. Mogę wszystko przenieść, ale zastanawiam się, czy istnieje sposób na stworzenie abstrakcji klasowej ... bez czystych funkcji wirtualnych.

questionAnswers(1)

yourAnswerToTheQuestion