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

问题描述 投票:0回答:1

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

我有两个计划的派生实现,“NumberPlotter”和“WordPlotter”,它们中的每个实际上都是相同的,因为NumberPlotter有一个名为“processor”的成员变量,类型为“NumberProcessor”,而WordPlotter有一个成员变量称为“处理器”,类型为“WordProcessor”。这两个* Processor类都是抽象基类“Processor”的实现。

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

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

c++ abstract-class derived-class
1个回答
2
投票

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

WordProcessor &getProcessor () = 0 ;

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

© www.soinside.com 2019 - 2024. All rights reserved.