抽象类在派生类中的实现
Abstract class Implementation in derived classes
让我从描述我的问题的片段开始。
class MovableObject : protected BaseObject
{
protected:
virtual void move() = 0;
};
class Player : public MovableOject {}
void Player::move() {}
当我试图编译上面的代码时,我收到一个错误,说在Player
类中没有move
的定义。只有在类声明中包含move
方法的声明后,我才能成功编译文件。我希望我的子类具有所需的声明,但显然我必须再次声明它们。有人能解释我的原因吗?
在尝试在类外定义函数之前,必须提供函数声明。
class Player : public MovableObject
{
void move() override;
};
相关文章:
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 有没有比在库中添加一个并非由所有派生类实现的新虚拟函数更好的设计实践
- 如何在从抽象基派生的类中实现相同的方法?
- 对派生自同一基类的类实现冲突检查
- 使用模板实现派生类
- 如何为具有私有成员的派生类实现移动构造函数
- 关于C++从派生类调用在基类中实现的虚拟函数的问题
- 如何在基类中定义静态接口,并确保该接口必须在派生类中实现
- 如何在派生类上强制实现特定数据类型的构造函数?
- C++派生类中的纯虚函数实现
- C :在f的派生类实现中,可以用x的子类型代替纯虚拟函数f的参数x
- 确保派生的类实现至少是来自抽象类(C )的两种方法之一
- C 结构实现派生接口
- 两个子级具有相同的 F() 实现,另外两个子级具有不同的 F 实现,所有四个子级都派生自同一类
- 如何在C++中正确表达具有相同实现的两个派生类函数?
- 如果不在派生类实现中执行此操作,"basic_streambuf"是否会创建自己的获取/放置区域?
- C++通过映射并使用中的方法从基类实现派生类
- 如何在指针的向量上实现派生类的复制构造函数到具有派生类实例的基类
- 为什么C++不允许基类实现派生类的继承接口?
- 实现派生类构造函数时出错:"重载函数的任何实例都与指定的类型匹配