c++ - 如何用派生基类替换基类

标签 c++ inheritance virtual

我正在开发一个 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/

相关文章:

c++ - 计算两个数的超表中的第 N 个数

c++ - 需要解决 Makefile 读取 Storm 数据程序的问题

c++ - 使用 C++ 基类构造函数?

c++ - 从模板参数派生类

c++ - operator<< 内部的虚方法调用

c++ - 标准数字输入

c++ - 显式实例化

swift - 使用继承时,为什么不能为在协议(protocol)中返回 Self 的 Type 函数提供默认实现?

c# - 对 C# 中的 "override"与 "new"感到困惑

javascript - 虚拟键盘建议 (JavaScript)