我有一个基类
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;
但是,我目前正在处理一个单独的类中的碰撞。我可以把所有东西都移过来,但我想知道是否有办法让一个类抽象......没有纯虚函数。