我正在开发一个 API,其中类 A 派生为类 B。
如果一个 API 用户想在应用层同时扩展 A 类和 B 类的功能,那么就会有问题。
假设应用程序用户想出扩展 A 类的 AX 类和扩展 B 类的 BX 类。在这种情况下,用户不会获得 BX 类的预期行为,因为 B 类的基类是 A 类而不是 AX 类。
想法:应用程序用户可以使用 B 类和 AX 类来扩展 BX 类,但在这种情况下,我认为会有已知的菱形行为。
我想知道解决此问题的任何标准方法。
最佳答案
从模板参数继承的类也是一种选择。伪代码:
class A;
template<typename WhichA>
class B : public WhichA;
class AX : public A;
class BX : public B<AX>;
关于c++ - 如何用派生基类替换基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10925367/