让我从描述我的问题的片段开始。
class MovableObject : protected BaseObject
{
protected:
virtual void move() = 0;
};
class Player : public MovableOject {}
void Player::move() {}
当尝试编译上面的代码时,我收到一条错误消息,指出 Player
类中没有 move
的定义。只有在将 move
方法的声明包含到类声明中后,我才能成功编译该文件。我希望我的 child 类(class)有必要的声明,但显然我必须再次声明。谁能解释我的原因?
最佳答案
在尝试在类外定义函数之前,您必须提供函数声明。
class Player : public MovableObject
{
void move() override;
};
关于c++ - 派生类中的抽象类实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32297654/