c++ - 派生类中的抽象类实现

标签 c++ inheritance abstract-class

让我从描述我的问题的片段开始。

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/

相关文章:

c++ - 希望我的代码将矩阵元素逐行转换为 vector ,它只显示矩阵的最后一行为 vector

c++ - C++11 中的 constexpr 概念

c++ - 基类中抽象方法的包装器实现

Java 抽象类的良好实践

c++ - Qt5 QFile::close() 写入速度非常慢

C++,继承的copy ctors不起作用?

CSS继承: Override an ID parent selector with a CLASS child

javascript - 创建 javascript 子类型的实例会产生意外行为

oop - 我可以在继承类上获取父类名称(第一个)吗?

c# - 我的抽象类实现了一个接口(interface),但没有实现它的一些方法。我如何让它编译?