确保派生类具有适当类型的属性

Ensure Derived Classes have property of appropriate type

本文关键字:类型 属性 派生 确保      更新时间:2023-10-16

我有一个抽象基类(只有数据成员和纯虚函数),例如"Plotter"类。

我有两个计划的派生实现,"NumberPlotter"和"WordPlotter",它们中的每一个几乎都是相同的,除了NumberPlotter有一个名为"处理器"的成员变量,类型为">

NumberProcessor",WordPlotter有一个名为"处理器"的成员变量,类型为"字处理器"。这两个 *处理器类都是抽象基类"处理器"的实现。

有没有办法确保 *Plotter 类具有一个名为"处理器"的成员变量,该变量在编译时通过其抽象基类具有 *Processor 的某种实现类型?我不能声明绘图仪类有一个处理器类型的变量,因为处理器只有纯虚函数(它是一个抽象类型)。

处理器实现具有一些相同的成员变量,因此我希望能够在使用绘图仪->处理器->甚至绘图仪->处理器->Process() 形式的基绘图仪类时做出一些基本假设。

这样做的方法是定义一个抽象函数,如下所示:

WordProcessor &getProcessor () = 0 ;

您不能真正强制子类具有成员变量,但可以强制它具有依赖于具有此类成员变量的成员函数。