c++ - C++ 强制从不同的继承层次实现纯虚方法
问题描述
我有一个Parent
班级和两个Child
班级:
class Parent
{
};
class Child1: public Parent
{
};
class Child2 : public Parent
{
};
我想要第二个类层次结构,类Cousin
位于层次结构的顶部,子类称为Cousin1
等Cousin2
:
class Cousin
{
virtual void doUsefulWork() = 0;
};
class Cousin1 : public Cousin
{
virtual void doUsefulWork() override
{
// One behaviour
}
};
class Cousin2 : public Cousin
{
virtual void doUsefulWork() override
{
// A different behaviour
}
};
每个Child
子类必须继承一个Cousin
子类,以实现doUsefulWork()
:
class Child1 : public Parent, Cousin1
{
// Has implementation of doUsefulWork() from Cousin1
};
如何防止Child
子类的作者忘记继承Cousin
子类?我想要一些会产生编译时错误的东西。
每个Child
子类都必须有权访问doUsefulWork()
.
我正在考虑Cousin
从 Parent 继承并定义纯虚拟doUsefulWork()
in Parent
,但是我会在子类中遇到复杂的多重继承问题Child
?
解决方案
如何防止 Child 子类的作者忘记继承 Cousin 子类?我想要一些会产生编译时错误的东西。
您实现这些接口的原因是因为必须有使用这些接口的函数。如果对象未实现接口,则在将对象传递给该函数时会出现编译器错误 - 这充当强制检查对象必须实现该接口的作用。
推荐阅读
- c# - 在asp.net mvc中注册成功(重定向到登录)后用户名自动填写登录页面
- php - 类型:ArgumentCountError 消息:函数的参数太少
- javascript - Spotify 网络 API
- android - 接受用户在 UI 中的输入并代表用户在网站上提交数据?
- backbone.js - 获取数据未在模板中呈现
- excel - 工作表更改 VBA
- node.js - 如何使用 Node.js 通过 AWS SES 发送图像和文件附件?
- python - Pymodbus-read-input-registers CRC 无效,丢弃标头
- python - Python:Pandas groupby 处理大数据的时间太长
- r - 如何编辑校准图的图例?