我有一个基类
class ShapeF
{
public:
ShapeF();
virtual ~ShapeF();
inline void SetPosition(const Vector2& inPosition) { mPosition.Set(inPosition); }
protected:
Vector2 mPosition;
}
显然,有一些省略的代码,但你明白我的意思。 我使用这个作为模板,并且使用一些有趣(省略)的枚举类型来确定我正在使用的形状。
class RotatedRectangleF : public ShapeF
{
public:
RotatedRectangleF();
virtual ~RotatedRectangleF();
protected:
float mWidth;
float mHeight;
float mRotation;
}
ShapeF通过定位和定义类型的枚举来完成其工作。它具有访问器和修改器,但没有方法。
我能否将ShapeF设置为抽象类,以确保没有人试图实例化ShapeF类型的对象?
通常,可以通过在ShapeF中拥有纯虚函数来实现这一点。
//ShapeF.h
virtual void Collides(const ShapeF& inShape) = 0;
然而,我目前正在处理一个单独的类中的碰撞问题。 我可以将所有内容移动过去,但我想知道是否有一种方法可以使一个类成为抽象类,而不需要使用纯虚函数。