C++中一个类的多个实现

Multiple implementations of a class in C++

本文关键字:实现 一个 C++      更新时间:2023-10-16

我想知道是否可以在C++中完成以下操作。

我想做的是有一个类的,它们都有相同的公共部分——也就是说,相同的公共变量和相同的方法集——然而,这组类中的不同类在私有部分会有不同的,它们可能有不同的私有变量——尽管方法集对于这样一组的所有类都是统一的,但这些方法的implementations可能会有所不同。

还有一个额外的比特——我想知道C++是否支持——我希望它是这样的,所有属于这个组中类的对象实际上都是相同的数据类型。也就是说,程序类内部之外的任何部分都不会在一个类的对象和另一个类对象之间进行区分——前提是两个类都是同一组的一部分。

将该类组的一个类作为参数的函数可以将该类的任何类作为该参数。引用该类组的一个类的对象的变量可以引用该类的任何级的<em]对象。>

为什么我想知道这是否可以做到?因为如果可以的话,我可以使用这样一组类作为抽象层。

看起来您是在研究接口。好吧,并没有完全在C++中实现的。在C++中,您可以创建接口的模式模拟。

此外,阅读C#中整数类和抽象类之间的差异也很有用。

这看起来确实像是一项继承工作。您可以使用基类来定义基本数据类型(根据您的请求),同时为类的"组"定义公共接口(可能具有纯虚拟成员函数)。

为所有"公共部分"创建一个抽象基类,然后为"私有部分"创建子类。然后,可以使用声明为抽象基类类型的变量和方法参数简单地引用所有类的所有实例。OOP 101…

当然,有不止一种方法…