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

时间:2018-01-17 04:31:15

标签: c++ abstract-class derived-class

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

我有两个计划的派生实现," NumberPlotter"和#34; WordPlotter,"除了NumberPlotter有一个名为" processor"的成员变量之外,它们中的每一个都大致相同。类型" NumberProcessor"和WordPlotter有一个名为" processor"的成员变量。类型为" WordProcessor"。这两个* Processor类都是抽象基类" Processor"。

的实现

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

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

1 个答案:

答案 0 :(得分:2)

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

WordProcessor &getProcessor () = 0 ;

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