【发布时间】:2018-06-25 21:25:21
【问题描述】:
我有一个抽象基类(内部只有数据成员和纯虚函数),例如“绘图仪”类。
我有两个计划的派生实现,“NumberPlotter”和“WordPlotter”,除了 NumberPlotter 有一个名为“processor”的成员变量,它的类型是“NumberProcessor”而 WordPlotter 有一个名为“处理器”的成员变量,其类型为“WordProcessor”。这两个 *Processor 类都是抽象基类“Processor”的实现。
有没有办法通过它们的抽象基类确保 *Plotter 类有一个名为“处理器”的成员变量,该变量在编译时具有 *Processor 的某种实现类型?我不能声明 Plotter 类具有处理器类型的变量,因为处理器只有纯虚函数(它是一种抽象类型)。
处理器实现具有一些相同的成员变量,因此我希望能够在以 Plotter->Processor-> 甚至 Plotter->Processor- 的形式使用基本 Plotter 类时做出一些基本假设>进程()。
【问题讨论】:
-
抽象类可以有数据成员(接口不能),所以你可以在
Plotter类中添加Processor & processor;成员
标签: c++ abstract-class derived-class