C ++中类的多个实现

时间:2014-01-11 08:12:03

标签: c++ class object abstraction

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

我想要做的是拥有一个类,这些类都具有相同的公共部分 - 即相同的公共变量,以及相同的 set 方法 - 但是,这组类中的不同类在私有部分中不同 - 也就是说,它们可能具有不同的私有变量 - 虽然方法的 set 对于这样一个组的所有类都是统一的,但这些方法的实现可能会有所不同。

还有一个额外的位 - 我想知道C ++是否支持 - 我希望它能够使属于该组中的类的所有对象实际上是相同的数据类型。也就是说,程序外部类的内部的任何部分都不会区分一个类的对象和另一个类的对象 - 前提是这两个类都是同一组的一部分。 / p>

一个函数,它将此类组的一个类作为参数,可以将此类的参数作为任何类。引用此类组的一个类的对象的变量可以引用此类组的任何类的对象。

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

3 个答案:

答案 0 :(得分:1)

看起来你是关于接口的。好吧,没有一个纯粹用C ++实现的。 在C ++中,您可以创建pattern-simulation of interface

另外,您会发现在C#中阅读differences between intefraces and abstract classes非常有用。

答案 1 :(得分:1)

这看起来像是继承的工作。您可以使用定义基本数据类型的基类(按照您的请求),同时为类的“组”定义公共接口(可能使用纯虚拟成员函数)。

答案 2 :(得分:0)

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

当然,有不止一种方法可以做到这一点......