我想了解您对如何最好地在 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/