【发布时间】:2010-10-18 04:07:47
【问题描述】:
我正在创建一个类库,其中包含许多不同的选项以进行可能的自定义。例如,您可以设计您的类,使其可以执行 FeatureX(),或者您可以设计您的类,使其可以执行 FeatureY()。
在正常情况下,您只需使用称为 FeatureX 的纯虚方法创建一个接口 IFeatureX,并使用称为 FeatureY 的纯虚方法创建另一个接口 IFeatureY。如果一个类同时具有 FeatureX 和 FeatureY,那么它可以从两者继承,没问题。
我的问题是,如果一个函数/方法需要一个可以同时执行 FeatureX() 和 FeatureY() 的对象怎么办?我如何表达一个类型,最好用 C++,但 Java 的答案也可以帮助确保 FeatureX 和 FeatureY 都可用?
我是否要创建另一个接口 IFeatureXY,它继承自 IFeatureX 和 IFeatureY?好的......如果只有两个功能,我可以摆脱这个。但是如果说... 10 个功能,那么可能的接口数量就会变得庞大。
有没有简单的方法来做到这一点?我尝试使用 C++ 模板和委托来解决问题,但并没有走得太远。我希望有一个简单的解决方案来解决这个问题,而且可能有一个我只是忽略了。
感谢你们提供的任何帮助和建议。
谢谢。
【问题讨论】:
标签: c++ inheritance delegation