【发布时间】:2013-03-21 03:22:48
【问题描述】:
有没有我可以用来帮助实现依赖于基类存在的虚函数的习语?例如,我有
class B {/* some abstract interface. */};
class A
{
public:
virtual B* getB() {return nullptr;}
};
class C : public A, public B
{
public:
B* getB() override {return this;}
/* Implement B's interface here.*/
};
而且我通常想像这样实现getB - 我可以以某种方式避免对所有叶类重复此操作吗?我可能有一些接口类,比如 B,
我知道做到这一点的一种方法是在 C 和 B 中都从 A 虚拟继承,但如果可能的话,我希望 B 与 A 无关。
【问题讨论】:
标签: c++ c++11 multiple-inheritance virtual-functions