C++继承模式

标签 c++ inheritance

我想了解您对如何最好地在 C++ 中实现继承模式的看法。我有两个基类,比如说

class fooBase{
protected:
    barBase* b;
};

class barBase{};

其中 fooBase 有一个 barBase。我打算将这些类放在一个库中,以便在任何有 fooBase 的地方它都可以使用它的 barBase 成员。

我现在打算在特定程序中创建这些的特化

class fooSpec : public fooBase{};
class barSpec : public barBase{};

现在我希望 fooSpec::b 指向 barSpec 而不是 barBase。我知道我可以用 new barSpec 初始化 b,但这需要我随时将指针转换为 barSpec在特化中使用特定功能不是吗?

有没有其他方法可以经常实现这一点?

干杯。

最佳答案

在您的规范类中创建一个方法,将 b 转换为特殊版本。 这样就不会一直转换它,它看起来像一个 setter/getter 。

另一方面,OO 是关于面向接口(interface)而不是对象的编程。所以你在这里所做的看起来像是针对对象的编程。但是很难看出这一点,因为这个例子纯粹是理论上的。

关于C++继承模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17428472/

相关文章:

c++ - 为什么 omnet++ 4.6 模拟在运行时停止?

c++ - 在 c++ 中为我的类设置/获取方法时遇到问题

java - Java中具有继承类的静态数组

c++ - 当类层次结构中只有一个类时,避免在每次函数调用时读取 V 表的开销

c++ - 在dll项目之间使用extern方法?

c++ - 在两个 typedef 结构之间切换,取决于 bool 值

c++ - 从 long 转换为相同大小的 int 失败

javascript - 属性复制到继承类型的目的

javascript - React,当子类继承并挂载时,父类是否运行生命周期方法?

qt - qt继承的信号不会到达插槽